我最初使用處理程序來更新從互聯網接收的數據的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