2012-03-15 18 views
5

में संवाद शीर्षक लेआउट ओवरराइड करना मैंने अपने एंड्रॉइड ऐप में संवाद के लिए एक कस्टम थीम बनाई है, और मैं संवाद शीर्षक के लिए उपयोग किए गए लेआउट को ओवरराइड करने की योजना बना रहा था। मैंने देखा कि मानक एंड्रॉइड Theme में यह विशेषता है जो संशोधित करने के लिए दिखती है।एंड्रॉइड

<item name="dialogTitleDecorLayout">@layout/dialog_title</item> 

लेकिन जब मैं अपने Theme

<style name="Theme.Dialog.MyDialog" parent="android:Theme.Dialog"> 
    <item name="android:windowBackground">@android:color/black</item> 
    <item name="android:dialogTitleDecorLayout">@layout/my_dialog_title</item> 
</style> 

मैं निम्न त्रुटि देख ओवरराइड करने की कोशिश:

No resource found that matches the given name: attr 'android:dialogTitleDecorLayout'

क्यों मैं इसे बदलने के लिए और मैं कैसे पता कर सकते हैं सक्षम नहीं है जो गुण बदला जा सकता है और कौन सा नहीं?

+0

आप शैली के लिए पूरी xml फ़ाइल दिखा सकते हैं? क्या आप वहां एंड्रॉइड के लिए एक्सएमएल स्कीमा खो रहे हैं? – Genry

उत्तर

1

इस तरह की वस्तु को ओवरराइड करना संभव नहीं है। आपको आवश्यक लेआउट के साथ संवाद को कस्टमाइज़ करना होगा और फिर लेआउट में आपको अपनी आवश्यकता के लिए यहां थीम को लागू करना होगा।

dialog_title.xml 

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<TextView 
    android:id="@+id/text" 
    android:text="@string/tell_a_friend" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingLeft="8dip" 
    android:paddingTop="12dip" 
    android:paddingBottom="12dip" 
    style="@style/bigTextWhite" /> 

</LinearLayout> 

// इस विधि जहाँ आपके संवाद onclick बटन घटना में प्रकट होता है

public void onClickHelp(View v) { 
    final Dialog duDialog = new Dialog(this); 
    duDialog.setContentView(R.layout.data_usage); 
    duDialog.getWindow().setBackgroundDrawableResource(R.color.title_text); 

    duDialog.setTitle("Data Usage"); // I would like to set the color and add button here 
    ListView data = (ListView) duDialog.findViewById(R.id.DataUsage); 
    duCursor = Data.getAll(db); 
    startManagingCursor(duCursor); 
    duAdapter = new DataAdapter(duCursor); 
    data.setAdapter(duAdapter); 
    duDialog.show(); 

}