重置Android对话框

时间:2011-09-20 08:49:12

标签: android android-2.2-froyo android-dialog

我发现了很多关于如何保存对话框状态的主题,例如使用Bundle实例。 但是,我似乎无法找到如何“正确”重置对话框。

考虑这个示例自定义对话框(XML布局带有ID为“input_text”的EditText):

public class CustomDialog extends Dialog {
  public CustomDialog (Context context) { super (context); }

  protected onCreate (Bundle savedInstanceState) {
    super.onCreate (savedInstanceState);

    setContentView(R.layout.input_query);
    EditText txt = (EditText) findViewById(R.id.input_text);

    // Consider that I'm declaring here the use of listeners
    // in order to retrieve input text.
  }
}

在主Activity中单击按钮时,我弹出此对话框。第二次执行此操作时,我的EditText包含上一个实例的输入。

现在,我知道我可以重置此EditText的内容,但我想知道是否存在一种通用的,已经存在的方法来执行此操作,对话框范围内。例如,如果我有一个更复杂的对话框,我希望每次实例化该对象时它都有“默认”值。我想删除对super.onCreate(savedInstanceState);的调用可以解决问题,但事实并非如此。

对不起,如果这是一个愚蠢的问题(或者如果已经解决了......我没有找到它)...任何帮助表示赞赏。非常感谢!

2 个答案:

答案 0 :(得分:5)

通常,您应该覆盖活动的onCreateDialogonPrepareDialog方法。

第一次创建对话框时,会调用onCreateDialog,因此您应该使用此方法创建对话框。要初始化/更新对话框覆盖onPrepareDialog的内容,在显示对话框之前始终会调用它。

答案 1 :(得分:1)

尝试使用与showDialog()相反的方法 - removeDialog()就是那个方法。我遇到了与你相似的问题。我展示的每个对话都是来自第一个实例的数据。当我开始使用removeDialog()时,内容正在正确更新。