我有一个警报弹出窗口,我在我的应用程序启动时显示。我希望用户通读它,所以我想将继续按钮变灰5秒,然后启用它以便用户可以继续。
if (alertDialog == null) {
alertDialog = new AlertDialog.Builder(this).setPositiveButton("Continue",
new AlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//continue with the app
}
}).create();
alertDialog.setTitle("My Title");
alertDialog.setView(myView);
}
if ((!alertDialog.isShowing())) {
alertDialog.show();
alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
}
将按钮设置为false后,我无法将其设置为true。我尝试使用Thread.sleep(5000l)并创建自己的对话框。 Niether他们工作。我怎样才能实现我的目标?
谢谢, AKASH
答案 0 :(得分:4)
在用户代码的回调完成后,UI元素都会一次性呈现。这就是为什么只添加延迟无济于事。
您可能想要启动一个线程或AsyncTask
方法,doInBackground
方法正在倒计时(可能在一个循环中,因此您可以在ok字段中显示一个计数器),然后在{{ 1}}启用按钮
的伪代码:
onPostExecute