2017-04-06 8 views
11
का विस्तार करना चाहिए

मैं जो कि एंड्रॉयड स्टूडियो में, TextView से बढ़ाया मैं इस wanrningएंड्रॉयड कस्टम दृश्य AppCompatTextView

This custom view should extend android.support.v7.widget.AppCompatTextView instead 

हो और मैं clickable propertise उपयोग नहीं कर सकते, उदाहरण के लिए सरल कस्टम दृश्य बनाया:

<com.myapp.test.Widgets.FontAwesome 
     android:layout_width="60dp" 
     android:layout_height="match_parent" 
     android:layout_marginRight="5dp" 
     android:background="?selectableItemBackground" 
     android:gravity="center" 
     android:clickable="@{()->presenter.clickOnSend()}" 
     android:text="@string/font_icon_post_message" 
     android:textColor="@color/gray_text_color" 
     android:textSize="40sp"/> 

मैं clickable propertise के लिए यह त्रुटि प्राप्त:

Error:(91, 46) Cannot find the setter for attribute 'android:clickable' with parameter type lambda on com.myapp.test.Widgets.FontAwesome. 

enter image description here

अपने कस्टम वर्ग:

import android.content.Context; 
import android.graphics.Typeface; 
import android.util.AttributeSet; 
import android.widget.TextView; 

public class FontAwesome extends TextView { 
    public FontAwesome(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
     init(); 
    } 

    public FontAwesome(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     init(); 
    } 

    public FontAwesome(Context context) { 
     super(context); 
     init(); 
    } 

    private void init() { 
     Typeface tf = Typeface.createFromAsset(getContext().getAssets(), 
       "fonts/fontawesome.ttf"); 
     setTypeface(tf); 
    } 
} 

मैं इस समस्या को कैसे हल कर सकते हैं?

+0

का उपयोग करना चाहिए है 'विस्तार android.support.v7.widget.AppCompatTextView' यह है TextView के समान। AppCompatTextView एंड्रॉइड के पुराने संस्करणों के लिए नए कार्यों के लिए पिछड़ा संगतता प्रदान करने के लिए उपयोग करें। –

+0

thois कोई समस्या नहीं है, आप जो कुछ भी चाहते हैं उसे बढ़ा सकते हैं। एंड्रॉइड स्टूडियो केवल आपको चेतावनी देता है कि AppCompatTextView संगतता के लिए उपयोग करने के लिए अधिक उपयुक्त है। –

+0

कोड अभी भी चलाएगा .... यह केवल एक चेतावनी है – rafsanahmad007

उत्तर

7

यह कस्टम दृश्य android.support.v7.widget.AppCompatTextView बजाय

यह एक Warning है का विस्तार करना चाहिए। त्रुटि नहीं यह बेहतर होगा यदि आप TextView के बजाय AppCompatTextView का उपयोग करें।

नहीं

public class FontAwesome extends TextView 

अच्छा दृष्टिकोण

आप AppCompatTextView

public class FontAwesome extends AppCompatTextView 
+11

क्यों? क्या आप कृपया बता सकते हैं कि कोई अच्छा क्यों है और दूसरा नहीं है। – shadox

+4

टिनटिंग जैसी सुविधाओं का समर्थन करने के लिए, AppCompat लाइब्रेरी स्वचालित रूप से बिल्टिन विजेट्स के लिए विशेष AppCompat प्रतिस्थापन लोड करेगा। हालांकि, यह आपके अपने कस्टम विचारों के लिए काम नहीं करता है। Android.widget कक्षाओं को सीधे विस्तारित करने के बजाय, आपको इसके बजाय android.support.v7.widget.Appcompat –

+8

@Sachin में प्रतिनिधि वर्गों में से एक का विस्तार करना चाहिए, वह खुद को चेतावनी से –

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