今天碰到一个问题,自定义dialog,点击其中的按钮,dialog消失,同时界面中的某个view显示出来,会出现标题中的错误信息。下面贴上错误代码
PromptDialog dialog = new PromptDialog(context);
dialog.setOnDismissListener(new PromptDialog.OnDismissListener() {
@Override
public void onDismiss() {
dialog.dismiss();
// 引起崩溃的代码就是这行,因为这里不是主线程,而所有更新UI的操作都需要在主线程完成
// 所以需要在这里通知主线程,让它做更新操作
moveView.setVisibility(View.VISIBLE);
}
});
所以将代码改成如下就行了:
PromptDialog dialog = new PromptDialog(context);
dialog.setOnDismissListener(new PromptDialog.OnDismissListener() {
@Override
public void onDismiss() {
dialog.dismiss();
// 将操作给主线程
context.runOnUiThread(rb);
}
});
Runnable rb = new Runnable() {
@Override
public void run() {
// 更新UI
moveView.setVisibility(View.VISIBLE);
}
};