第二次打开对话框时不会调用editText.setText



我有几个对话框,用户可以在其中来回切换。其中之一是带有editText的自定义对话框。我希望描述editText始终为空。我使用

description.setText("");

当我将描述文本编辑为例如"abcd"时,请移回DIALOG_THREE,然后再移到DIALOG_FOUR。description.setText(");未调用。更改后的文本"abcd"保留在编辑文本上。当我从一个对话框移动到另一个对话框时,专家们能建议我如何将其设置为空白吗。

@Override
@Deprecated
protected Dialog onCreateDialog(int id) {
Dialog dialog = null;
AlertDialog.Builder builder = new AlertDialog.Builder(this,
android.R.style.Theme_DeviceDefault_Light_DarkActionBar);
switch (id) {       
case DIALOG_THREE:
builder.setCancelable(false);
builder.setTitle("Incident Catagory");
builder.setSingleChoiceItems(incidentCatagory, -1,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
builder.setPositiveButton("next",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
showDialog(DIALOG_FOUR);

}
});
builder.setNegativeButton("Back",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
showDialog(DIALOG_TWO);
}
});
return builder.create();
case DIALOG_FOUR:
LayoutInflater inflaterFour = this.getLayoutInflater();
final View inflatorFour = inflaterFour.inflate(
R.layout.dialog_incidents_four_description, null);
builder.setView(inflatorFour);
description = (EditText) inflatorFour.findViewById(R.id.etDescription);
description.setText("");
builder.setPositiveButton("Next", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
showDialog(DIALOG_FIVE);
String desc = description.getText().toString();
}
});
builder.setNegativeButton("Back", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
showDialog(DIALOG_THREE);
}
});
return builder.create();

非常感谢。

添加description.setText(");在DIALOG_THREE的Next按钮的onClick()中。所以基本上你的DIALOG_THREE会是这样的。

您只需要在DIALOG_THREE的下一个按钮中设置description.setText("");这个代码。

case DIALOG_THREE:
builder.setCancelable(false);
builder.setTitle("Incident Catagory");
builder.setSingleChoiceItems(incidentCatagory, -1,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
builder.setPositiveButton("next",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
showDialog(DIALOG_FOUR);
description.setText("");        //  Add this line here
}
});
builder.setNegativeButton("Back",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
showDialog(DIALOG_TWO);
}
});
return builder.create();

NextBack按钮的onClick()方法中添加description.setText("");以清空edidtext。因此,您的DIALOG_FOUR将如下。。。

case DIALOG_FOUR:
LayoutInflater inflaterFour = this.getLayoutInflater();
final View inflatorFour = inflaterFour.inflate(
R.layout.dialog_incidents_four_description, null);
builder.setView(inflatorFour);
description = (EditText) inflatorFour.findViewById(R.id.etDescription);
description.setText("");
builder.setPositiveButton("Next", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
showDialog(DIALOG_FIVE);
String desc = description.getText().toString();
description.setText("");
}
});
builder.setNegativeButton("Back", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
description.setText("");
showDialog(DIALOG_THREE);
}
});
return builder.create();

最新更新