मेरी समस्या this 2 year old question के समान है, मैं अपडेट किए गए उत्तरों को प्राप्त करने के लिए एक ही समस्या पोस्ट कर रहा हूं, क्योंकि दो वर्षों में बहुत कुछ बदल गया है।एंड्रॉइड पर वर्तमान में दृश्यमान गतिविधि पर मैं एक संवाद कैसे प्रदर्शित कर सकता हूं?
मैं जिंजरब्रेड + उपकरणों के लिए एक ऐप के लिए विकास कर रहा हूं, मेरे पास कई गतिविधियां हैं और पृष्ठभूमि में मुझे सर्वर से कुछ डेटा प्राप्त होता है। अब कुछ मामलों में उस डेटा के आधार पर मुझे उपयोगकर्ता को Dialog
दिखाने की आवश्यकता है। समस्या यह है कि मैं कैसे जानता हूं कि वर्तमान मोर्चा सबसे अधिक गतिविधि कौन सा है?
मैं क्या करने की कोशिश की, मैं getApplicationContext()
जबकि Dialog
निर्माण देने की कोशिश की है, फिर भी जो काम नहीं कर रहा है। कुछ अपवाद फेंकना।
एक समाधान? (मुझे वास्तव में इससे नफरत है), एक समाधान Application
कक्षा में एक चर द्वारा वर्तमान में दृश्यमान गतिविधि का ट्रैक रखने के लिए किया जा सकता है, और इसे प्रत्येक गतिविधि के onResume()
पर सेट कर सकता है। मैं वास्तव में नहीं है, तो अपने इस लक्ष्य को हासिल करने के लिए होशियार तरीके हैं और मुझे यकीन है कि उनके इस लक्ष्य को हासिल करने के लिए होशियार तरीके हैं रहा हूँ इस बही खाता ऐसा करने के लिए,
मेरे सरल सवाल है,
मैं पर एक संवाद कैसे प्रदर्शित कर सकते हैं चाहता हूँ वर्तमान में दृश्य गतिविधि?, ताकि मैं AlertDialog.builder के लिए यह संदर्भ दे सकूं, जो मुझे लगता है कि मेरा काम करेगा .. यदि से अधिक नहीं है तो मैं शीर्ष गतिविधि पर एक संवाद कैसे प्रदर्शित कर सकता हूं?
संपादित करें, मैं निम्नलिखित कोड निजी View.OnClickListener cancelClickListener का उपयोग कर एक सरल संवाद बनाने = नए OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
LoginActivity.this);
// set title
alertDialogBuilder.setTitle("Roobroo will exit..");
// set dialog message
alertDialogBuilder
.setMessage("Are you sure you want to exit ?")
.setCancelable(false)
.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
// if this button is clicked, close
// current activity
LoginActivity.this.finish();
}
})
.setNegativeButton("No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
// if this button is clicked, just close
// the dialog box and do nothing
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
// TODO Write the code to exit from the app, (gracefull exit)
Log.i(LOG_CAT, "Cancel Button is clicked");
}
};
अपवाद AlertDialog.Builder alertDialogBuilder = नए AlertDialog.Builder का उपयोग कर ( getAplicationContext()); मुझे अपवाद निम्न देता है,
06-11 14:09:16.732: E/AndroidRuntime(1005): FATAL EXCEPTION: main
06-11 14:09:16.732: E/AndroidRuntime(1005): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
06-11 14:09:16.732: E/AndroidRuntime(1005): at android.view.ViewRoot.setView(ViewRoot.java:531)
06-11 14:09:16.732: E/AndroidRuntime(1005): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
06-11 14:09:16.732: E/AndroidRuntime(1005): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
06-11 14:09:16.732: E/AndroidRuntime(1005): at android.app.Dialog.show(Dialog.java:241)
06-11 14:09:16.732: E/AndroidRuntime(1005): at com.argusoft.roobrooAndroid.activities.LoginActivity$3.onClick(LoginActivity.java:127)
06-11 14:09:16.732: E/AndroidRuntime(1005): at android.view.View.performClick(View.java:2485)
06-11 14:09:16.732: E/AndroidRuntime(1005): at android.view.View$PerformClick.run(View.java:9080)
06-11 14:09:16.732: E/AndroidRuntime(1005): at android.os.Handler.handleCallback(Handler.java:587)
06-11 14:09:16.732: E/AndroidRuntime(1005): at android.os.Handler.dispatchMessage(Handler.java:92)
06-11 14:09:16.732: E/AndroidRuntime(1005): at android.os.Looper.loop(Looper.java:123)
06-11 14:09:16.732: E/AndroidRuntime(1005): at android.app.ActivityThread.main(ActivityThread.java:3683)
06-11 14:09:16.732: E/AndroidRuntime(1005): at java.lang.reflect.Method.invokeNative(Native Method)
06-11 14:09:16.732: E/AndroidRuntime(1005): at java.lang.reflect.Method.invoke(Method.java:507)
06-11 14:09:16.732: E/AndroidRuntime(1005): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
06-11 14:09:16.732: E/AndroidRuntime(1005): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
06-11 14:09:16.732: E/AndroidRuntime(1005): at dalvik.system.NativeStart.main(Native Method)
getAplicationContext() के साथ आप क्या अपवाद प्राप्त कर रहे हैं? –
कृपया कुछ कोड दिखाएं। आपने अभी तक क्या किया है? – Dhruvisha
ठीक है, आप एक अतिरिक्त गतिविधि ला सकते हैं जो पारदर्शी है और उस गतिविधि पर संवाद दिखा सकता है। गतिविधि में संवाद के लिए सभी कोड लिखें और जब भी आपको संवाद दिखाना होगा, तो गतिविधि को सामने लाएं। – Rasel