我已經搜索,但無法找到我的問題的答案。我的自定義函數結構customView.onclick
這是我有:
private class BoxView extends View {
private String caption;
private OnClickListener bvClickListener = null
public BoxView(Context context) {
super(context);
this.bvClickListener = new this.OnClickListener(){
public void onClick (View v){
/*v.setCaption("X"); view don't have this method */
}}
}
public void setCaption(String s){
this.caption=s;
invalidate();
}
}
這是我想擁有的一切:
private class BoxView extends View {
private String caption;
private OnClickListener bvClickListener = null
public BoxView(Context context) {
super(context);
this.bvClickListener = new this.OnClickListener(){
public void onClick (BoxView bv){
bv.setCaption("X");
}}
}
public void setCaption(String s){
this.caption=s;
invalidate();
}
}
我需要爲我的自定義視圖自定義方法。我希望能夠在觸發onclick時傳遞我的自定義視圖,而不是視圖版本,以便我可以直接訪問它。
更新
我想有機會獲得真正的對象不是一個轉換一個。所以我想避免這種情況:
public void onClick (View v){
((BoxView)v).setCaption("X");
}
這是不可能的點擊,你擴展了view.You可以設置在類中監聽器單擊您使用該特定視圖的活動中的偵聽器。您可以使用點擊偵聽器來實現,而不是使用點擊偵聽器。 –
@Rohit Heera?!你的意思是我們必須使用setOnclickListener來設置onClickListener,因爲我們不能在自定義視圖中使用OnClickListener?那麼我應該說我們可以。我的問題是如何在OnClick – ncm