public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LayoutInflater inflater = getLayoutInflater();
LinearLayout layout = (LinearLayout) inflater.inflate(R.layout.main, (ViewGroup) findViewById(R.id.root));
Toast toast = new Toast(getApplicationContext());
toast.setView(layout);
toast.setDuration(2000);
toast.show();
}
此代碼拋出java.lang.IllegalArgumentException:未附加到窗口管理器的視圖。 如果我更改線路查看未附加到窗口管理器
LinearLayout layout = (LinearLayout) inflater.inflate(R.layout.main, (ViewGroup) findViewById(R.id.root));
到
LinearLayout layout = (LinearLayout) inflater.inflate(R.layout.main, null);
的作品就好了。
有人可以解釋我爲什麼會發生這種情況嗎?我是Android平臺的新手,我只是想了解視圖和窗口管理器的工作原理。 不明白爲什麼如果將根視圖附加到Activity中,則不能再用於Toast視圖。
任何幫助表示讚賞!
謝謝!
看到這個線程的應用程序上下文和活動上下文之間的區別的解釋http://stackoverflow.com/questions/4128589/difference-between-activity-上下文和應用程序上下文 – ccheneson 2011-04-10 16:06:17
,它不回答我的問題。謝謝! – Viorel 2011-04-11 04:00:34
加油!沒有人可以給我一個提示? – Viorel 2011-04-12 11:52:16