2010-02-08 14 views
11

क्या डायलॉग बॉक्स को दोबारा बनाने के बिना एंड्रॉइड में एक संवाद बॉक्स की सामग्री को बदलने का कोई आसान तरीका है? मुझे पता है कि Activity.onCreateDialog() केवल तभी कॉल किया जाता है जब संवाद को पहले बनाया जाना चाहिए, और यह वह जगह है जहां आपने प्रारंभ में संवाद की सामग्री सेट की थी। मुझे बाद में संवाद की सामग्री को बदलने की जरूरत है, इसलिए मैं सोच रहा हूं कि ऐसा करने का सही तरीका क्या है।सृजन के बाद एंड्रॉइड डायलॉग बॉक्स की सामग्री बदलें

उत्तर

8

onPrepareDialog() method प्रत्येक बार Dialog प्रदर्शित होता है allowing you to update it appropriately प्रदर्शित होता है।

यह int आईडी onCreateDialog() और Dialog को उस विधि में बनाया गया है, जिसे पारित किया गया है।

@Override 
protected void onPrepareDialog(int id, Dialog dialog) { 
    //Always call through to super implementation 
    super.onPrepareDialog(id, dialog); 

    switch (id) { 
     case DIALOG_TIME: 
      ((AlertDialog)dialog).setMessage("The time is " + new Date()); 
      break; 
    } 
} 
+0

को खारिज किए बिना काम किया, मुझे नहीं पता कि मुझे यह कैसे याद आया। धन्यवाद! – tronman

+5

यदि आप कोई आइकन, संदेश, शीर्षक और कुछ अन्य आइटम बदलना चाहते हैं, तो यह ठीक काम करता है, लेकिन मुझे नहीं लगता कि यह काम करेगा यदि आप किसी सूची में आइटम बदलना चाहते हैं। उदाहरण के लिए, यदि आपने AlertDialog.builder's setSingleChoiceItems() विधि को बुलाया है, तो आप इन आइटम को PrepareDialog() पर नहीं बदल सकते हैं। एकमात्र समाधान है कि डायलॉग() ... को हटाए जाने वाले संवाद के लिए ऑनडिस्मिस लिस्टनर बनाना है ... यह हर बार कॉल करने के लिए क्रिएटडिअलॉग() विधि को मजबूर करता है। – tronman

0

ऊपर मेरे लिए काम नहीं किया। कॉलिंग removeDialogAlertDialog

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