मैं एक डायलॉग विंडो खोलने की कोशिश कर रहा हूं, लेकिन हर बार जब मैं इसे खोलने की कोशिश करता हूं तो यह अपवाद फेंकता है:
Uncaught handler: thread main exiting due to uncaught exception
android.view.WindowManager$BadTokenException:
Unable to add window -- token null is not for an application
at android.view.ViewRoot.setView(ViewRoot.java:460)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
at android.app.Dialog.show(Dialog.java:238)
at android.app.Activity.showDialog(Activity.java:2413)
मैं इसे showDialog
डिस्प्ले की आईडी से कॉल करके बना रहा हूं । onCreateDialog
हैंडलर ठीक लॉग करता है और मैं इसे माध्यम से एक मुद्दा बिना कदम कर सकते हैं, लेकिन मैं इसे संलग्न किया है के बाद से ऐसा लगता है कि मैं कुछ याद कर रहा हूँ:
@Override
public Dialog onCreateDialog(int id)
{
Dialog dialog;
Context appContext = this.getApplicationContext();
switch(id)
{
case RENAME_DIALOG_ID:
Log.i("Edit", "Creating rename dialog...");
dialog = new Dialog(appContext);
dialog.setContentView(R.layout.rename);
dialog.setTitle("Rename " + noteName);
break;
default:
dialog = null;
break;
}
return dialog;
}
क्या इसमें से कुछ गायब है? कुछ प्रश्नों ने संवाद बनाते समय इस समस्या के होने के बारे में बात की है onCreate
, जो इसलिए होता है क्योंकि गतिविधि अभी तक नहीं बनी है, लेकिन यह एक मेनू ऑब्जेक्ट से कॉल से आ रहा है, और appContext
चर ऐसा लगता है जैसे यह डिबगर में सही ढंग से आबादी है।