当你发现你的toast的show方法的确被执行了,但是却没有在界面中显示出来,
有问题的地方可能有两点:
1.Context上下文对象有问题,不是当前的上下文对象或者什么的;
2.message(即Toast要显示的问题)有问题,可能message最后为“”。
如果这两个问题都没有错的话,就要考虑安卓不允许在子线程中更改UI
要解决这个问题就简单了,在子线程中通过handler传递接收数据来显示Toast即可。
比如在实现反馈页面的时候。
这是反馈成功时子线程中的代码,反馈失败就不写了。
Message message = new Message(); message.what = SUCCESS_SEND; handler.sendMessage(message);
下面是在handler中获得数据
private Handler handler = new Handler() { public void handleMessage(android.os.Message msg) { String text = null; switch (msg.what) { case CONTENT_NULL: text = "反馈内容不能为空"; break; case SUCCESS_SEND: text = "谢谢您的反馈"; default: break; } Toast toast = Toast.makeText(FeedbackActivity.this, text, Toast.LENGTH_LONG); toast.setGravity(Gravity.TOP, 0, 0); toast.show(); Log.d(TAG, text); }; };
时间: 2024-10-10 20:26:17