2011-06-13 12 views
5

मैं अपने खुद के संवाद बनाने के लिए निम्नलिखित कोड का उपयोग कर रहा:एंड्रॉयड संवाद पर गायब हो जाता है अपने स्वयं के

public void ShowMessageDialog(String str){ 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setMessage(str); 
    builder.setCancelable(false); 
    builder.setNeutralButton("Ok", new DialogInterface.OnClickListener() {   
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      dialog.dismiss(); 
     } 
    }); 
    AlertDialog alert = builder.create(); 
    alert.show(); 
} 

यह ठीक काम करता है, लेकिन यह इस समारोह के अंदर इस्तेमाल संवाद अपने आप पर गायब हो जाता है प्रकट होता है:

public void test(String str){ 
    ShowMessageDialog("About to start new activity"); 
    Intent intent = new Intent(this,PageViewer.class); 
    startActivity(intent); 
} 

ऐसा लगता है कि नई गतिविधि बनाई गई है और स्पष्ट रूप से संवाद से छुटकारा पाती है। पर क्यों? क्या नया खोलने से पहले गतिविधि बंद नहीं होनी चाहिए?

धन्यवाद!

उत्तर

5

इरादा जो आग लग रहा है, आपके संवाद को रद्द करने की प्रतीक्षा नहीं करता है। तो, संवाद के ठीक बाद दिखाए जाने के बाद, नई गतिविधि शुरू हो गई है। आप को पूरा कर सकते है कि इस प्रकार हैं:

public void ShowMessageDialog(String str){ 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setMessage(str); 
    builder.setCancelable(false); 
    builder.setNeutralButton("Ok", new DialogInterface.OnClickListener() {   
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      dialog.dismiss(); 
      Intent intent = new Intent(this,PageViewer.class); 
      startActivity(intent); 
     } 
    }); 
    AlertDialog alert = builder.create(); 
    alert.show(); 
} 

public void test(String str){ 
    ShowMessageDialog("About to start new activity"); 
} 
+1

इसके अलावा, आप शायद बदलना चाहिए 'इस' गतिविधि या ऐप्लिकेशन संदर्भ के संदर्भ में आशय निर्माता, में इस तरह से 'इस' DialogInterface उदाहरण के लिए है, क्योंकि। मुझे इसके बारे में निश्चित नहीं है, लेकिन मुझे लगता है कि आपको यह विचार मिल गया है। –

+0

उत्तर के लिए बहुत बहुत धन्यवाद! – aarelovich

संबंधित मुद्दे