【发布时间】:2014-03-19 22:25:57
【问题描述】:
我正在尝试显示我制作的对话框,但在显示之前需要设置超时,就像您在 javascript 中使用 setTimeout 函数一样。有没有办法在 Android 中使用 java 做到这一点?
我曾尝试使用 Timer 实例,但在执行代码时出现此异常:
03-19 22:18:19.638: E/AndroidRuntime(2396): FATAL EXCEPTION: Timer-0
03-19 22:18:19.638: E/AndroidRuntime(2396): java.lang.RuntimeException: Can't create
handler inside thread that has not called Looper.prepare()
这是代码:
// instantiating a new CustomDialog class
MyCustomDialog dialog = new MyCustomDialog(thisContext, R.layout.institutional_info_custom_list);
DetailListView = (ListView) dialog.findViewById(R.id.custom_dialog_list);
final MasterDetailArrayAdapter adapter = new MasterDetailArrayAdapter(ComeHaInvestito.this, MasterAndDetailstatisticsInfoList);
DetailListView.setAdapter(adapter);
final MyCustomDialog showDialog = dialog;
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
showDialog.show();
}
}, 600);
我错了什么?我读到对话框绑定到 Acrivity 类,所以也许将 showDialog.show() 调用放在 new TimerClass() 中会引发异常?
顺便问一下,执行我所描述的操作的最佳方式是什么?
【问题讨论】: