【发布时间】:2013-01-20 06:59:27
【问题描述】:
我正在使用带有自定义视图的 AlertDialog,其中包含 EditText 小部件。我想在显示 AlertDialog 之前更改 EditText 小部件的内容。我知道这通常是通过覆盖 onPrepareDialog() 并在那里设置文本来完成的。但是,据我所知,这在我的特定情况下不起作用,因为我使用 AlertDialog.show() 而不是 Activity.showDialog()。
那么我应该如何处理使用 AlertDialog.show() 显示的对话框?一种解决方案是在对话框被带到前面之后设置文本,即:
AlertDialog alertDialog = builder.create();
alertDialog.show();
EditText editText = (EditText) alertDialog.findViewById(R.id.text);
editText.setText("Foo bar");
但是,我认为这不是一个好的解决方案,因为首先显示对话框,然后设置文本。我想在实际显示对话框之前设置文本。
有什么方法可以实现吗?我不能在 alertDialog.show() 之前执行此操作,因为 findViewById() 在 alertDialog.show() 之前调用时返回 null。
感谢您的帮助!
【问题讨论】:
标签: android dialog android-alertdialog