2012-03-09 11 views
6

डिफ़ॉल्ट रूप से, हमें दो या तीन बटन मिलते हैं जो एक चेतावनी संवाद में क्षैतिज रूप से गठबंधन होते हैं। क्या चेतावनी संवाद में उन्हें लंबवत रूप से गठबंधन करना संभव है?क्या हमारे पास एंड्रॉइड अलर्ट संवाद में लंबवत बटन हो सकते हैं?

उत्तर

8

निश्चित रूप से, आप संवाद की सामग्री को मनमाने ढंग से लेआउट के रूप में सेट करने के लिए Dialog.setContentView() का उपयोग कर सकते हैं।

Dialog dialog = new Dialog(this); 
    dialog.setContentView(R.layout.yourLayoutId); 
    dialog.show(); 

खुद के बटन आप इसे में चाहते हैं और अपने संवाद पर setContentView फोन है कि एक कार्यक्षेत्र LinearLayout के साथ एक लेआउट फ़ाइल अपने लेआउट फ़ाइल का नाम गुजर बनाओ,।

आप AlertDialog पर deadset हैं, तो आप कुछ builder.setView() के साथ इसी तरह

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View layout = inflater.inflate(R.layout.yourLayoutId, (ViewGroup) findViewById(R.id.yourLayoutRoot)); 
    AlertDialog.Builder builder = new AlertDialog.Builder(this) 
    .setView(layout); 
    AlertDialog alertDialog = builder.create(); 
    alertDialog.show(); 
+0

बिल्कुल सही ... धन्यवाद! – Ahmed

6

एक setItems हुई है() कॉल जो एपीआई स्तर 1. कोई कारण एक कस्टम बनाने के लिए के बाद से यह करता है क्या कर सकते हैं संवाद जब तक आप वस्तुओं के स्वरूप और अनुभव को बदलना नहीं चाहते हैं।

CharSequence[] items = {"Foo", "Bar", "FooBar"}; 
new AlertDialog.Builder(activity) 
.setTitle("Choose a widget") 
.setItems(items, new DialogInterface.OnClickListener() 
{ 
    @Override 
    public void onClick(DialogInterface dialog, int which) 
    { 
     switch(which) 
     { 
      case FOO: 
      // foo case 
      break; 

      .... 
     } 
    } 
} 
.create().show(); 
+4

इस पर एक नोट: आप अलर्ट पर सेट मैसेज को कॉल नहीं कर सकते हैं, अगर आप करते हैं तो आप आइटम नहीं देख पाएंगे। –

+1

ग्रेट कोड। आपको उल्लेख करना चाहिए कि यह लंबवत बटन बनाता है क्योंकि मैंने पहले सोचा था कि यह क्षैतिज बना देगा। – yshahak

+0

अच्छा बिंदु, लेकिन आप इन्हें कैसे शैलीबद्ध करते हैं? – Calin

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