2015-12-15 10 views
5

मैं एक कस्टम घटक के लिए जिम्मेदार बताते हैं कस्टम पाने के लिए जानने की चाह लोगों के साथ पदों की एक बहुत कुछ देखा है, लेकिन यह मेरे सवाल नहीं है। मैं एक कस्टम घटक बनाया है और मैं विशेषताओं को जोड़ने की कोशिश कर रहा हूँ, लेकिन जब मैं अपने xml फ़ाइल के शीर्ष पर नाम स्थान जोड़ने यह केवल दो यादृच्छिक कस्टम विशेषताओं "paddingEnd" और "paddingStart" पाता है।एंड्रॉयड कस्टम दिखाई नहीं दे विशेषताओं

<resources> 
    <declare-styleable name="menu_item_attrs"> 
     <attr name="imageId" format="integer" /> 
     <attr name="menuText" format="string" /> 
    </declare-styleable> 
</resources> 

यह attrs.xml फ़ाइल है।

public MenuListItem(Context context, AttributeSet set) { 
    super(context, set); 

    TypedArray a = context.obtainStyledAttributes(set, R.styleable.menu_item_attrs); 
    if (a == null) { 
     return; 
    } 
    CharSequence s = a.getString(R.styleable.menu_item_attrs_menuText); 
    if (s != null) { 
     // do something 
    } 
} 

यह मेरी कस्टम कक्षा में निर्माता है।

 <LinearLayout 
      xmlns:custom="http://schemas.android.com/apk/res-auto" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:id="@+id/expanding_layout" 
      android:background="#029eed"> 

      <aaron.testappanim.MenuListItem 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content"/> 
     </LinearLayout> 

यह मेरा उपयोग करने में घटक है। मैं "imageId" और "menuText" में मान जोड़ना चाहता हूं लेकिन वे उपलब्ध नहीं हैं। दिखाए गए एकमात्र चीजें नीचे दिखाए गए पैडिंग से संबंधित हैं।

enter image description here

कोई भी विचार लोग?

उत्तर

12

मिले समाधान।

यह आप Styleable नाम अपने वर्ग के नाम के रूप में ही की आवश्यकता होता है।

<resources> 
    <declare-styleable name="MenuListItem"> 
     <attr name="my_custom_attribute" format="integer" /> 
    </declare-styleable> 
</resources> 

इस मामले में इस विषय पर कई पोस्ट गलत हैं क्योंकि मैं शैली के नाम के साथ पूरी तरह से अलग दिख सकता हूं।

उम्मीद है कि इस किसी और इस जाल में गिरने रोक सकता है।

चीयर्स

+0

यह मेरे काफी इस सरल समस्या के लिए एक जवाब के लिए इंटरनेट परिशोध के बाद मदद की। धन्यवाद! – chaser

-1

मेरे समाधान किया गया था: attr.xml फ़ाइल में, आप अपने कस्टम विशेषता के रूप में इस प्रकार है

<declare-styleable name="IDEditText"> <attr name="customFont" format="string"/> </declare-styleable>

यहाँ घोषित हो सकता है, declare-styleable के नाम फ़ील्ड नाम होना चाहिए कस्टम दृश्य का। फिर यह सुझावों में दिखाएगा।

mycase मेरी कस्टम दृश्य नाम पर IDEditText है इसलिए declare-styleable नाम = "IDEditText"

+1

यह सही है .. लेकिन यह पहले से ही उत्तर दिया गया है! फिर भी धन्यवाद! – Murphybro2

+0

आपका स्वागत है। मुझे बस यह मुद्दा था, इसलिए सोचा कि यह किसी और की मदद कर सकता है – Vishnu

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