例如
从外部类
访问OnClickListener中存在的变量答案 0 :(得分:2)
关于匿名课程的观点是你不需要引用它们。如果你确实需要引用一个类,它不应该是匿名的。
仅仅因为OnClickListener
通常是匿名的,并不意味着他们必须这样做。你可以这样做。
private static final class MyListener implements View.OnClickListener {
private int field;
private int getField() { return field; }
// constructor and onClick() method
}
然后
MyListener myListener = new MyListener();
view.setOnClickListener(myListener);
int a = myListener.getField();
答案 1 :(得分:1)
为什么要麻烦,要么命名你的类,要么将该变量移到外面的类。
答案 2 :(得分:0)
这有点棘手,但你有两个选择:
创建一个可以存储某些值的类,在外部创建一个实例并将其设置为final。最后,使用setter修改类的内部值。
如果您的变量太简单而无法创建对象,请在长度为1的最终数组外创建,并在匿名类中指定此0位置的值。