दिलचस्प पोस्ट
रेखा से फ़ाइल लाइन पढ़ें सी # अनाम प्रकार ऑब्जेक्ट तक पहुंच आर में कई भूखंडों के लिए आम कथा एंड्रॉइड वर्तमान लोकेल, डिफ़ॉल्ट नहीं है आईओएस 5 पर फास्ट एंड एक्स्टीर कोर डेटा आयात को लागू करना पता करें कि फ़ाइल बैच फ़ाइल में 4 घंटे से अधिक पुरानी है एक जावा ऑब्जेक्ट के गुणों को डंप करना वेब पेज में चयनित पाठ के अनुच्छेद पाने के लिए जावास्क्रिप्ट AutoEventWireUp पृष्ठ संपत्ति का अर्थ क्या है? ब्राउज़रों को सीएसएस चयनकर्ताओं को सही से बाएं से क्यों सामना करना पड़ता है? विस्तार विधि का नकली करने के लिए मैं कैसे मुकाब का उपयोग कर सकता हूं? अगर-दूसरे वक्तव्य पर स्विच का लाभ मैं कैसे जांचूं अगर एक HTML तत्व jQuery का उपयोग कर खाली है? विंडो "डेस्कटॉप पर" पायथन में उनके गुणों द्वारा समानता के लिए वस्तु के उदाहरणों की तुलना करें

मैं एंड्रॉइड चेतावनी संवाद की पृष्ठभूमि कैसे बदल सकता हूं?

मैं अपने आवेदन में AlertDialog वर्ग का उपयोग करता हूँ डिफ़ॉल्ट रूप से, इन अलर्ट संवादों में एक पारदर्शी पृष्ठभूमि होती है। मैं इसके बजाय एक अपारदर्शी पृष्ठभूमि का उपयोग करने की कोशिश कर रहा हूं, बहुत असफल। ये मेरी शैली हैं:

<style name="MyOpaqueActivity" parent="@android:style/Theme.Dialog"> <item name="android:windowBackground">@drawable/my_background</item> <item name="android:alertDialogStyle">@style/MyOpaqueAlertDialog</item> </style> <style name="MyOpaqueAlertDialog" parent="@android:style/Theme.Dialog.Alert"> <item name="android:background">#454545</item> <item name="android:windowBackground">@drawable/my_background</item> <item name="android:popupBackground">@drawable/my_background</item> </style> 

मैंने पूरी गतिविधियों के लिए सफलतापूर्वक "MyOpaqueActivity" शैली लागू की है (विंडो की पृष्ठभूमि को "my_background" में बदल दिया गया है), लेकिन यह उन गतिविधियों के भीतर चेतावनी संवाद के लिए काम नहीं करता है। "अलर्ट डीआलोगस्टाइल" विशेषता और मेरी "मायओपाकअलार्टडायलोग" शैली का कोई प्रभाव नहीं है।

तो मैं इन चेतावनी संवादों की पृष्ठभूमि कैसे बदल सकता हूँ?

वेब के समाधान से एकत्रित समाधान "मैं एंड्रॉइड चेतावनी संवाद की पृष्ठभूमि कैसे बदल सकता हूं?"

आपका दृष्टिकोण काम नहीं करेगा ऐसा लगता है कि अलर्टडायलाओग (और बिल्डर) हार्डकोड थीम को और कहीं भी सचेतक डेलॉगस्टाइल का सम्मान नहीं करते हैं:

 protected AlertDialog(Context context) { this(context, com.android.internal.R.style.Theme_Dialog_Alert); } public Builder(Context context) { this(context, com.android.internal.R.style.Theme_Dialog_Alert); } 

वे यहां एक ही निष्कर्ष पर आए थे

अलर्ट डाइलाओल से प्राप्त एक कस्टम डायलॉग क्लास जिसे संरक्षित कन्स्ट्रक्टर अलर्ट डायालॉग (प्रसंग, आर। शैली। माय ओपाकेअलार्ट डायलॉग) कहलाता है एक वैकल्पिक हल होगा।

नवीनतम एंड्रॉइड स्रोत में, अलर्ट डाइलॉग के लिए एक नया सार्वजनिक कन्स्ट्रक्टर है। बिल्डर जो थीम तर्क लेता है। दुर्भाग्य से, यह अभी तक जारी नहीं किया गया है (शायद जिंजरब्रेड में?)।

यह एक XML शैली में ऐसा करना आसान है जब आप यह मानते हैं कि AlertDialogs के कुछ खास विशेष गुण हैं

हालांकि, यह जानना दिलचस्प होगा कि आप किस एंड्रॉइड वर्जन को संदर्भित कर रहे हैं (या पर लक्ष्य कर रहे हैं)। थीम। डायलॉग अपेक्षाकृत नया है जहाँ तक मुझे पता है। नए एंड्रॉइड संस्करण भी उन सभी परिस्थितियों में अलर्टडायलीॉग्स का उपयोग नहीं करते हैं, जहां पुराने संस्करणों में उनका उपयोग किया गया था।

एंड्रॉइड 2.2 में यह मेरे लिए काम करता है:

 <style name="MyTheme" parent="@android:style/Theme"> <item name="android:alertDialogStyle">@style/MyOpaqueAlertDialog</item> </style> <style name="MyOpaqueAlertDialog"> <item name="android:fullDark">@drawable/[...]</item> <item name="android:topDark">@drawable/[...]</item> <item name="android:centerDark">@drawable/[...]</item> <item name="android:bottomDark">@drawable/[...]</item> <item name="android:fullBright">@drawable/[...]</item> <item name="android:topBright">@drawable/[...]</item> <item name="android:centerBright">@drawable/[...]</item> <item name="android:bottomBright">@drawable/[...]</item> <item name="android:bottomMedium">@drawable/[...]</item> <item name="android:centerMedium">@drawable/[...]</item> </style> 

नए एंड्रॉइड संस्करणों में एंड्रॉइड भी है: प्रगति लेआउट और एंड्रॉइड: अलर्ट डीआलाओग शैली के लिए क्षैतिज प्रगति लेआउट विशेषताएँ

इसके अलावा, नए एंड्रॉइड संस्करणों में, अलर्ट डीआलाओग थीम को एक कस्टम थीम में अलर्ट डीआलोग स्टाइल के बजाय अलर्ट डीआईएलओघथीम का उपयोग करके संभव है। AlertDDialogThemes windowBackground, windowTitleStyle आदि जैसे अधिक परिचित और अधिक शक्तिशाली विशेषताओं का समर्थन करते हैं। Styles.xml और themes.xml पर एक नज़र डालें।

दुर्भाग्यवश, सुपर गरीब होने पर उस सुविधा का दस्तावेज जोड़ा गया था। कृपया अपने आप को खोजने के लिए whcih दृष्टिकोण आपके लिए सबसे अच्छा है

प्रलेखन से यह दिखता है कि आप ऐसा कर सकते हैं क्रेट डिआलिग में।

 FrameLayout fl = (FrameLayout) findViewById(android.R.id.custom); fl.setBackgroundResource(); // has to be a drawable. 

केवल अन्य समाधान उस थीम का उपयोग करके एक कस्टम संवाद है