मेरे मुख्य से activity
, मुझे एक आंतरिक वर्ग को कॉल करने की आवश्यकता है और कक्षा के भीतर एक विधि में, मुझे दिखाने की आवश्यकता है AlertDialog
। इसे खारिज करने के बाद, जब ओके बटन दबाया जाता है, तो आगे खरीद के लिए Google Play पर जाएं।
चीजें ज्यादातर समय के लिए पूरी तरह से काम करती हैं, लेकिन कुछ उपयोगकर्ताओं के लिए यह दुर्घटनाग्रस्त builder.show()
हो रहा है और मैं "android.view.WindowManager$BadTokenException:
क्रैश लॉग से विंडो को जोड़ने में असमर्थ देख सकता हूं । कृपया सुझाव दें।
मेरा कोड इस तरह बहुत अधिक है:
public class classname1 extends Activity{
public void onCreate(Bundle savedInstanceState) {
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.<view>);
//call the <className1> class to execute
}
private class classNamename2 extends AsyncTask<String, Void, String>{
protected String doInBackground(String... params) {}
protected void onPostExecute(String result){
if(page.contains("error"))
{
AlertDialog.Builder builder = new AlertDialog.Builder(classname1.this);
builder.setCancelable(true);
builder.setMessage("");
builder.setInverseBackgroundForced(true);
builder.setNeutralButton("Ok",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton){
dialog.dismiss();
if(!<condition>)
{
try
{
String pl = "";
mHelper.<flow>(<class>.this, SKU, RC_REQUEST,
<listener>, pl);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
});
builder.show();
}
}
}
}
मैंने एक अन्य अलर्ट में भी त्रुटि देखी है जहां मैं किसी अन्य को अग्रेषित नहीं कर रहा हूं activity
। यह इस तरह सरल है:
AlertDialog.Builder builder = new AlertDialog.Builder(classname1.this);
builder.setCancelable(true);
//if successful
builder.setMessage(" ");
builder.setInverseBackgroundForced(true);
builder.setNeutralButton("Ok",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton){
// dialog.dismiss();
}
});
builder.show();
}
//send to some other activity
। मुझे लगता है कि यदि आप उस हिस्से पर टिप्पणी करेंगे जहां आप एक नई गतिविधि पर जा रहे हैं, तो यह त्रुटि दूर हो जाएगी। त्रुटि इसलिए होती है क्योंकि आपका संवाद पूरी तरह से खारिज हो जाता है, आपकी नई गतिविधि शुरू हो जाती है। में onPostExecute()
, आपके पास चेतावनी संवाद है और आप login
गतिविधि का संदर्भ दे रहे हैं । लेकिन आप अन्य गतिविधि के लिए नेविगेट कर रहे हैं, इसलिए संदर्भ गलत हो जाता है। इसलिए आपको यह त्रुटि मिल रही है! Stackoverflow.com/questions/15104677/… समान प्रश्न देखें ।