[英]How can i change the text in text view by click?
我有一个通过单击按钮并选择颜色来添加任务的代码。
我希望在添加任务后通过长单击打开带有edittext的对话框来更改其内容。 我怎样才能做到这一点?
对不起,我的英语不好!
LinearLayout container;
EditText inputText;
TextView txt;
RadioGroup colorPick;
int checkedColor;
//Counter
int i=1;
int id=1;
//Colors
int red = Color.parseColor("#EF9A9A");
int blue = Color.parseColor("#90CAF9");
int white = Color.parseColor("#FFFFFF");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
inputText = (EditText)findViewById(R.id.inputText);
container=(LinearLayout)findViewById(R.id.container);
colorPick=(RadioGroup)findViewById(R.id.colorPick);
colorPick.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId){
case R.id.colorBlue:
checkedColor=blue;
break;
case R.id.colorRed:
checkedColor=red;
break;
case R.id.colorWhite:
checkedColor=white;
break;
default:
checkedColor=white;
}
}
});
}
public void add(View v){
final String input=inputText.getText().toString();
txt = new TextView(this);
if(input.matches("")){
inputText.setBackgroundColor(-65536);
}else{
txt.setHeight(50);
txt.setText(i+". "+input);
txt.setBackgroundColor(checkedColor);
i++;
container.addView(txt);
colorPick.clearCheck();
inputText.setText("");
//Add a edit option
txt.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
id=txt.getId();
dialogCustom();
return false;
}
});
}
}
public void remove(View v){
container.removeAllViews();
}
public void removeEditColor(View v){
inputText.setBackgroundColor(0x00000000);
}
private void dialogCustom(){
AlertDialog.Builder editTxtDialog = new AlertDialog.Builder(this);
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
EditText input1 = new EditText(this);
editTxtDialog.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
input1.setHint("Change the task..");
layout.addView(input1);
editTxtDialog.setView(layout);
editTxtDialog.show();
}
在对话框创建方法中添加一个参数,以便您可以设置文本:
private void dialogCustom(final TextView v) {
AlertDialog.Builder editTxtDialog = new AlertDialog.Builder(this);
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
EditText input1 = new EditText(this);
editTxtDialog.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
v.setText("Some text");
}
});
input1.setHint("Change the task..");
layout.addView(input1);
editTxtDialog.setView(layout);
editTxtDialog.show();
}
并调用如下方法:
public void add(View v){
final String input = inputText.getText().toString();
txt = new TextView(this);
if(input.matches("")){
inputText.setBackgroundColor(-65536);
} else{
txt.setHeight(50);
txt.setText(i+". "+input);
txt.setBackgroundColor(checkedColor);
i++;
container.addView(txt);
colorPick.clearCheck();
inputText.setText("");
//Add a edit option
txt.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
id=txt.getId();
dialogCustom((TextView) v);
return false;
}
});
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.