2011-08-12 12 views
53

मैं अपने ProgressDialog में एक रद्द बटन सेट करना चाहता हूं।प्रगति संवाद में रद्द बटन कैसे सेट करें?

myDialog = new ProgressDialog(BaseScreen.this); 
myDialog.setMessage("Loading..."); 
myDialog.setCancelable(false); 
myDialog.show(); 

मैं इस ProgressDialog पर एक onClickListener के साथ एक बटन सेट करना चाहते हैं: नीचे मेरी कोड है। मैं इस कोड के साथ करने की कोशिश की:

myDialog.setButton("Cancel", new OnClickListener() {   
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     // TODO Auto-generated method stub   
     myDialog.dismiss(); 
    } 
}); 

लेकिन यह काम नहीं कर रहा। मैंने अन्य समान श्रोताओं की भी कोशिश की, लेकिन फिर भी कोई सफलता नहीं मिली। मैं इस समस्या को कैसे हल कर सकता हूं?

उत्तर

126

setButton जिस विधि का आप उपयोग कर रहे हैं उसे बहिष्कृत किया गया है (हालांकि इसे अभी भी काम करना चाहिए)। साथ ही, आप संवाद दिखाते हुए से पहले बटन जोड़ना चाहेंगे। प्रयास करें:

myDialog = new ProgressDialog(BaseScreen.this); 
myDialog.setMessage("Loading..."); 
myDialog.setCancelable(false); 
myDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     dialog.dismiss(); 
    } 
}); 
myDialog.show(); 
+6

FYI करें, 'dialog.dismiss()' में आवश्यक नहीं है अपनी गतिविधि में कहीं से एक साधारण कॉल विधि का उपयोग 'onClick' श्रोता के रूप में यह स्वचालित रूप से संवाद को खारिज कर देगा। वास्तव में, यह विधि आपको संवाद को खारिज होने से रोकने की अनुमति नहीं देती है। –

17

बुला myDialog.show();
इसके अलावा, आप myDialog.setButton("Cancel", (DialogInterface.OnClickListener) null); उपयोग कर सकते हैं अगर आप केवल बटन पर क्लिक संवाद को बंद करने की जरूरत से पहले सुनिश्चित करें कि आप myDialog.setButton कॉल करते हैं।

2

जांच इस

private void createCancelProgressDialog(String title, String message, String buttonText) 
{ 
    cancelDialog = new ProgressDialog(this); 
    cancelDialog.setTitle(title); 
    cancelDialog.setMessage(message); 
    cancelDialog.setButton(buttonText, new DialogInterface.OnClickListener() 
    { 
     public void onClick(DialogInterface dialog, int which) 
     { 
      // Use either finish() or return() to either close the activity or just the dialog 
      return; 
     } 
    }); 
    cancelDialog.show(); 
} 

तो बस

createCancelProgressDialog("Loading", "Please wait while activity is loading", "Cancel"); 
+0

इसे 4.3 या ऊपर रद्द कर दिया गया है –

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