我已经搜索,但无法找到我的问题的答案。我的自定义函数结构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