我将 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。
谢谢你的帮助!