请帮我解决这个问题,我从来不明白 onClickListener 内部是如何工作的,所以:
有我自己的课:
public class ItemFrame extends LinearLayout{
int item_id;
public ItemFrame(Context context){
super(context);
}
public int getItem_id() {
return item_id;
}
public void setItem_id(int item_id) {
this.item_id = item_id;
}
}
我初始化一个并添加一个 onClickListener:
ItemFrame myItemFrame = new ItemFrame(this);
myItemFrame.setOnClickListener(new OnClickListener(){
public void onClick(View v){
//ERROR HERE:
//Cannot refer to a non-final variable myItemFrame inside an inner class
//defined in a different method
//Quick fix: Change modifier of 'myItemFrame' to final.
myItemFrame.setItemId(100);
}
});
所以...我的问题是:如何在 onClickListener 中设置我的班级的数据标签???如果我将它更改为 Eclipse 所说的 final ,我无法修改它,因为它是final。这有什么意义吗?