我在我的Android應用程序中有一個微調,我可以讓它顯示,但秒。我點擊它,應用程序崩潰並拋出:不能在Android應用程序中使用微調器
無法添加窗口 - 標記android.view.ViewRootImpl $ Wfb @無效:您的活動正在運行嗎?
佈局很簡單。我有一個活動,有一個列表和一個按鈕來添加一些東西到列表中。點擊後,添加按鈕打開一個彈出窗口,顯示微調框,文本框和按鈕。一切正常,直到我點擊微調。現在
我搜索谷歌一小時,發現這些:
Android - Dynamically Adding values to Spinners
BadTokenException Unable to add Window Spinner in PopUpWindow
Android Spinner Error : android.view.WindowManager$BadTokenException: Unable to add window
多。他們似乎都指向上下文,但是我已經嘗試了使用「this」,getApplicationContext,到我的activity.context的名稱,並且它們都不起作用。我嘗試使用某人提供兩次的答案,而不是僅僅將contentView設置爲頁面,這使情況變得更糟(應用程序立即與空指針異常一起崩潰)。
下面是彈出窗口(點擊「添加」按鈕時執行)代碼:
public void add_itinerary_clicked(View view)
{
LayoutInflater i = (LayoutInflater) getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
View popupView = i.inflate(R.layout.itinerary_add_item_page, null);
popup = new PopupWindow(popupView, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
popup.showAtLocation(popupView , Gravity.CENTER, 0, 0);
Spinner airlineChoice = (Spinner) popupView.findViewById(R.id.airlineSpinner);
Button addBtn= (Button) popupView.findViewById(R.id.finish_addItinerary);
String[] list = new String[1];
list = airlineMap.keySet().toArray(list);
ArrayAdapter<CharSequence> spinnerAdapter = new ArrayAdapter<CharSequence>(getApplicationContext(), android.R.layout.simple_spinner_item, list);
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
airlineChoice.setAdapter(spinnerAdapter);
addBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish_addItinerary_clicked();
popup.dismiss();
}
});
}
我在在這一點上完全失去我。如果它不是上下文(我試過別人說過的話)那麼它是什麼?
以下是完整的錯誤消息:
FATAL EXCEPTION: main
android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected] is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:567)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:246)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
at android.widget.PopupWindow.invokePopup(PopupWindow.java:993)
at android.widget.PopupWindow.showAsDropDown(PopupWindow.java:899)
at android.widget.ListPopupWindow.show(ListPopupWindow.java:603)
at android.widget.Spinner$DropdownPopup.show(Spinner.java:981)
at android.widget.Spinner.performClick(Spinner.java:609)
at android.view.View$PerformClick.run(View.java:17355)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
這是您的代碼中的錯字? 'lsit = airlineMap.keySet()。toArray(list);' –
你可以發佈拋出的異常嗎? – Rizowski
對不起,沒有錯字已更新的問題,而不是我的實際代碼。現在的問題正確地反映了我的代碼中的內容。 –