2015-04-20 88 views
0

我有以下代碼和問題,即我的功能rlposition()不能從課程外部獲得。如何使用新功能擴展TextView

public class RLbadge extends TextView { 

    public RLbadge(Context context) { 
     super(context); 
     this.setTypeface(null, Typeface.BOLD); 
     this.setTextColor(Color.WHITE); 
     this.setBackgroundResource(R.drawable.badge); 
     this.setTextSize(18); 
    } 

    public void rlposition(Button pButton) { 
     // THIS FUNCTION ISNT SEEN FROM OUTSIDE WHY? 
    } 

    protected void onDraw (Canvas canvas) { 
     super.onDraw(canvas); 
    } 
} 

爲什麼函數rlposition從類的外部不可見? 是不是可以將功能添加到擴展TextView

+2

你如何試圖訪問該方法?請告訴我們的代碼。 – rasmeta

+0

使其成爲靜態並訪問它 – jyomin

回答

1

我現在回答了我自己的問題,並把它放在這裏,也許有人需要在未來的答案。

問題是這一行調用的:

TextView badgeInfoscan = new RLbadge(this); 
badgeInfoscan.rlposition(); // here the error comes 

改爲

RLbadge badgeInfoscan = new RLbadge(this); 
badgeInfoscan.rlposition(); // the function is visible 
2
<YOURPACKAGENAME.MyTextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="32sp" 
     android:text="TEASTING" /> 

這裏是

public class MyTextView extends TextView { 

    public MyTextView(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
     init(attrs); 
    } 

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

    } 

    public MyTextView(Context context) { 
     super(context); 
     init(null); 
    } 

    private void init(AttributeSet attrs) { 
     // Do your staff 
     } 
    } 

} 
+0

有關更多詳細信息,請訪問http://stackoverflow.com/questions/9477336/how-to-make-custom-textview –