我想创建一个带有计时器的AlertDialog。基本上,如果用户在30秒后没有对对话框中的按钮做出决定,我希望对话框消失。我可以使用AlertDialog构建器创建一个对话框,但似乎在执行.show()方法后无法使用.setMessage()方法更新文本。
关于我应该做什么的任何想法?
所以在下面的代码中,如果我在.show()方法之后运行.setMessage()方法,我什么也看不见。这告诉我,我无法实时更新对话框中的文本。
// Create the alert dialog with a alert builder.
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Confirm Settings Change")
.setCancelable(false)
.setPositiveButton("Confirm", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
this.finish();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
alert = builder.create();
alert.setMessage("test");
alert.show();
答案 0 :(得分:2)
我认为您需要在调用setMessage()
之前至少调用一次show()
,以便之后能够再次调用它。您可以将其设置为空值或临时值,然后稍后更新:
alert.setMessage("test");
alert.show();
...
alert.setMessage("test again");
答案 1 :(得分:1)
我建议从XML中扩展自定义Dialog,以便您可以获得要在代码中更改的TextView(或其他)的句柄。这真的很容易:
http://developer.android.com/guide/topics/ui/dialogs.html#CustomDialog
答案 2 :(得分:0)
你可以使用ProgressDialog:
public Context ioContext;
private ProgressDialog ioProgressDialog;
ioProgressDialog = ProgressDialog.show(ioContext, "", "This is my dialog!", true);
ioProgressDialog.setMessage(Html.fromHtml("<font color='black'>" + isMensaje + "</font>"));