2010-05-13 13 views
9

मैं इस संवाद में एक दृश्य दिखाने के लिए एक कस्टम संवाद करने की कोशिश कर रहा हूं।एक कस्टम संवाद खारिज करें?

//Getting the layout 
LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE); 
View layout = inflater.inflate(R.layout.custom_dialog_simple, 
           (ViewGroup) findViewById(R.id.rlDialogSimple)); 

//Change Text and on click 
TextView tvDialogSimple = (TextView) layout.findViewById(R.id.tvDialogSimple); 
tvDialogSimple.setText(R.string.avisoComprobar); 
Button btDialogSimple = (Button) layout.findViewById(R.id.btDialogSimple); 
btDialogSimple.setOnClickListener(new OnClickListener() { 

    public void onClick(View v) { 
     //Do some stuff 

     //Here i want to close the dialog 
    } 
}); 

AlertDialog.Builder builder = new AlertDialog.Builder(AcPanelEditor.this); 
builder.setView(layout); 
AlertDialog alert = builder.create(); 
alert.show(); 

तो, मैं btDialogSimple की onClick में संवाद निरस्त करना चाहते हैं: इस बिल्डर कोड है। यह मेरे द्वारा कैसे हो सकता है? मुझे नहीं पता कि ऑनक्लिकलिस्टर के अंदर से बर्खास्तगी विधि को कैसे कॉल करें।

मेरे बटन में एक कस्टम लेआउट है, इसलिए मैं builder.setPositiveButton नहीं बनाना चाहता हूं।

कोई विचार?

+0

के अंदर कॉल करें महान प्रश्न! यह बिल्कुल सही तरीका है * लगता है * यह काम करना चाहिए। लेकिन निश्चित रूप से, यह नहीं है - यह बस आसान हो जाएगा! (एंड्रॉइड वे नहीं)। –

उत्तर

16

आप अपने माता-पिता वर्ग संपत्ति के लिए AlertDialog को बचाने के लिए तो कुछ इस तरह का उपयोग किया है: मुझे लगता है एक बेहतर तरीका कॉल करने के लिए हो सकता है

class parentClass ........ { 
private AlertDialog alert=null; 
........ 
public void onClick(View v) { 
     //Do some stuff 

     //Here i want to close the dialog 
     if (parentClass.this.alert!=null)    
     parentClass.this.alert.dismiss(); 
    } 
........ 
this.alert = builder.create(); 
this.alert.show(); 

}

+0

यह काम किया, धन्यवाद! – YaW

+0

बहुत बहुत धन्यवाद !!! – davs

+0

मेरे लिए भी काम करता है। लेकिन चूंकि मेरे पास एक एक्सएमएल फ़ाइल के रूप में बनाया गया एक कस्टम संवाद है, इसलिए मुझे इसे बनाने की आवश्यकता नहीं है, बस setContentView (custom_dialog) का उपयोग करें। –

7

dismissDialog(DIALOG_ID); 

AlertDialog को क्लास प्रॉपर्टी को बनाना नहीं है, जिस पर ConreDialog() से एक संवाद लौटने का उद्देश्य है?

+2

यह ** कस्टम ** संवाद के साथ कैसे काम करता है? –

0

ı उदा उपयोग कर रहा हूँ

public Dialog dialog; 

buton_sil.setOnClickListener(new View.OnClickListener() { 

      @ Override 
      public void onClick(View v) { 

        DialogClose(); 
        } 
}): 


public void DialogClose() { 
     dialog.dismiss(); 
    } 
0

उपयोग AlertDialog उदाहरण mAlertDialog एक वैश्विक चर के रूप में। और mAlertDialog.dismiss(); को onClick()

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