gpt4 book ai didi

扩展Dialog的Android类,如何在显示之前清除TextViews

转载 作者:行者123 更新时间:2023-11-29 15:33:19 25 4
gpt4 key购买 nike

我有一个扩展 android.app.Dialog 的类,布局在 xml 文件中完成,设置(按钮监听器等)在 onCreate 方法上完成。我的问题是,无论何时显示对话框,然后关闭,然后再次显示,Editable TextViews 仍然填充了之前显示的信息。清除这些文本字段的常用方法是什么?请记住 - 这是一个扩展 Dialog 的单独类 - 因此没有像 Activity 那样的“onDialogCreate”。

或者,也许我扩展了错误的类?只是有很多处理正在进行,不想在主 Activity 中拥有所有代码。我希望它在一个单独的类中。我试图扩展 AlertDialog,但它不像 Dialog 那样创建边框。任何帮助都会很棒。

对话框通过 Activity 显示:

    protected Dialog onCreateDialog(int id) {
switch(id){
case DIALOG_NEW_SAFE:
return(new NewSafeDialog(this));
default:
return(null);
}
}

最佳答案

onCreateDialog(..) 缓存对话框,这意味着重复使用相同的实例。

解决不良行为的 3 种方法:

  1. 覆盖 onPrepareDialog(..),使用 findViewById(..) 获取任何你想清除的内容,清除它。
  2. 根本不要依赖托管对话框,每次要显示对话框时都执行新的 NewSafeDialog(this).show()
  3. 在您的自定义对话框中添加 onCancelListener(..)onDismissListener(..),这将调用一个方法来清除自身。

关于扩展Dialog的Android类,如何在显示之前清除TextViews,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2459847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com