11

मैं एक कस्टम व्यू के लिए अपना खुद का <declare-styleable> लागू कर रहा हूं (निर्देश here के बाद)। मैं पूर्ण XML गुणों में से एक के रूप में पूर्णांक की सरणी निर्दिष्ट करने में सक्षम होना चाहता हूं। मैं कैसे कर सकता हूं:घोषणा-शैली में पूर्णांक की सरणी को परिभाषित करने के लिए कैसे?

  1. attrs.xml में एक XML विशेषता के रूप में पूर्णांक सरणी निर्दिष्ट करें?
  2. TypedArray से अपने कस्टम व्यू में obtainStyledAttributes() पर कॉल करने के बाद इसे प्राप्त करें?

उत्तर

23
  1. आप एक संदर्भ के रूप में यह घोषणा कर सकते हैं।

    <declare-styleable name="MyView"> 
        <attr name="array" format="reference"/> 
    </declare-styleable> 
    
  2. ऐसा लगता है कि TypeArray की तरह विधि नहीं getIntArray है ताकि आप संसाधनों से सीधे इसे पाने के लिए किया है।

    final TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.MyView); 
    final int id = array.getResourceId(R.styleable.MyView_array, 0); 
    
    if (id != 0) { 
        final int[] values = getResources().getIntArray(id); 
    } 
    
    array.recycle() 
    
+8

एक TypedArray उपयोग करने के बाद() array.recycle कॉल करने के लिए मत भूलना। वह लाइन 2 के बाद होगा। – jpmcosta

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

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