我最初使用处理程序来更新从互联网接收的数据的UI。我现在想要在alertdialog中显示这些数据,而不是在UI屏幕上。该程序通过按下按钮来工作,获取信息并将其显示在屏幕上。这是通过为处理程序调用必要的消息来完成的。我管理的吐司消息做,我认为alertdialog将遵循同样的逻辑,但我得到的错误:在我的活动中启动来自处理程序的AlertDialog
RunTime Error: Unable to add Window -- token null is not for an application
这里是我的处理程序消息,该错误显然是造成代码(84号线这是.show()方法行):
Handler handler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
Context context = getApplicationContext();
switch(msg.what)
{
case DISPLAY_TOAST:
Toast t = Toast.makeText(context,"Toast Test",Toast.LENGTH_SHORT);
t.show();
break;
case UPDATE_UI:
htmlData.setText(feedback);
break;
case DISPLAY_ALERT_DIALOG:
passTime = new AlertDialog.Builder(context);
passTime.setTitle(alertDialogTitleStrg);
passTime.setMessage(alertDialogMsgStrg);
passTime.show();
break;
}
}
};
感谢它在那里工作得很好,虽然我本来也是这样,但它仍然失败......我一定要老去 – Katana24 2012-03-27 19:41:04
有时在开发者的生活中有些奇怪的事情发生; – 2012-03-27 20:12:20
感谢那令人耳目一新的时刻的家伙! :d – longilong 2015-07-14 15:15:23