【Android】错误信息 Only the original thread that created a view hierarchy can touch its views

来源:互联网 发布:上海丝绸哪里买好 知乎 编辑:程序博客网 时间:2024/05/18 00:32

今天碰到一个问题,自定义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);            }        };
阅读全文
0 0
原创粉丝点击