2010-08-25 14 views
14

मैं अपने चेकबॉक्स को कस्टमाइज़ करने में असमर्थ हूं, हालांकि मैंने XML प्राथमिकता फ़ाइल में पृष्ठभूमि को परिभाषित किया है, यह फ़ाइल को खींच नहीं करता है। 1. मैं चेकबॉक्स के लिए कस्टम छवियों को प्रदर्शित करने की कोशिश कर रहा हूँ और "android_button.xml" जो लगता है कि के रूप में चयनकर्ता एक्सएमएल परिभाषित किया है:चेक बॉक्स वरीयता को अनुकूलित करें

<?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_checkable="true" 
     android:drawable="@drawable/state_normal" /> <!-- pressed --> 
<item android:state_checked="true" 
     android:drawable="@drawable/android_pressed" /> <!-- focused --> 
<item android:drawable="@drawable/state_normal" /> <!-- default --> 
</selector> 

state_normal और android_pressed रेस में दो .png छवियों> drawable फ़ोल्डर हैं।

2.my चेकबॉक्स preference.xml फ़ाइल है:

  <CheckBoxPreference android:key="@string/Drop_Option" 
      android:title="Close after call drop" 
      android:defaultValue="true" 
      android:background="@drawable/android_button" 
      /> 

वहाँ परिभाषा में किसी भी त्रुटि है, केवल परिवर्तन है कि स्क्रीन में दिखाई देता है एंड्रॉयड है: शीर्षक पाठ, अगर मैं पाठ बदलने, यह पाठ बदलता है। कुछ और नहीं बदलता है। मैं यह कैसे तय करुं। आपका सुझाव देने के लिए धन्यवाद।

उत्तर

42

वहाँ प्राप्त करने के लिए आपको क्या चाहिए दो तरीके हैं, पहली रेस में कस्टम चेकबॉक्स लेआउट custom_chexbox.xml परिभाषित करने के लिए है/लेआउट:

:

<?xml version="1.0" encoding="UTF-8"?> 
<CheckBox xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+android:id/checkbox" android:layout_width="wrap_content" 
android:layout_height="wrap_content" android:focusable="false" 
android:clickable="false" android:button="@drawable/android_button"/> 

तो फिर तुम वरीयता के लिए इस लेआउट निर्दिष्ट करने की आवश्यकता

<CheckBoxPreference android:key="@string/Drop_Option" 
android:title="Close after call drop" android:defaultValue="true" 
android:widgetLayout="@layout/custom_checkbox"/> 

दूसरा तरीका कस्टम थीम बनाना, चेकबॉक्स दृश्यों के लिए शैली को फिर से परिभाषित करना और प्राथमिकता गतिविधि में विषय लागू करना है, विवरण के लिए How to customize the color of the CheckMark color in android in a dialog. : android देखें।

+1

बीमार स्तर, एंड्रॉइड के बारे में कोई जानकारी नहीं थी: विजेटलाइट, हर दूसरे घटक की इच्छा थी। – Gubatron

+0

दोस्त, यह सही है। – zenperttu

+0

यह पूरी तरह से आदमी काम करता है। आप एक जीवन रक्षक है। मुझे कभी नहीं पता था कि हम विगेट्स के लिए भी कस्टम लेआउट का उपयोग कर सकते हैं। बहुत बहुत धन्यवाद। –

0

एक drwable xml फ़ाइल बनाएँ: cb.setButtonDrawable (R.drawable.checkboxcustom) द्वारा प्रोग्राम के

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:drawable="@drawable/checkbox_active_btn" android:state_checked="true"></item> 
    <item android:drawable="@drawable/checkbox_active_btn" android:state_checked="true" android:state_enabled="false" android:state_focused="true"></item> 
    <item android:drawable="@drawable/checkbox_active_btn" android:state_checked="true" android:state_enabled="false"></item> 
    <item android:drawable="@drawable/checkbox_active_btn" android:state_checked="true" android:state_focused="true"></item> 
    <item android:drawable="@drawable/checkbox_active_btn" android:state_checked="true" android:state_pressed="true"></item> 
    <item android:drawable="@drawable/checkbox_inactive_btn" android:state_checked="false"></item> 
    <item android:drawable="@drawable/checkbox_inactive_btn" android:state_checked="false" android:state_enabled="false" android:state_focused="true"></item> 
    <item android:drawable="@drawable/checkbox_inactive_btn" android:state_checked="false" android:state_enabled="false"></item> 
    <item android:drawable="@drawable/checkbox_inactive_btn" android:state_checked="false" android:state_focused="true"></item> 
    <item android:drawable="@drawable/checkbox_inactive_btn" android:state_checked="false" android:state_pressed="true"></item> 

</selector> 

सेट यह;

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