Java 需要了解android视图中onClick回调的实现

Java 需要了解android视图中onClick回调的实现,java,android,Java,Android,理想情况下,构建应该失败,因为textview对象是在我的onCreate()方法本地定义的,并且该对象没有传递给onClick()方法 我对Java比较陌生。有人能解释一下这个物体是如何接近的吗? 还有一件事。。为什么我需要传递视图v参数,以及它对该方法有何用处?视图v是OnClickListener已附加到的元素。您只需将方法中的textview更改为v final EditText textview = new EditText(this); textvie

理想情况下,构建应该失败,因为
textview
对象是在我的
onCreate()
方法本地定义的,并且该对象没有传递给
onClick()
方法

我对Java比较陌生。有人能解释一下这个物体是如何接近的吗?
还有一件事。。为什么我需要传递
视图v
参数,以及它对该方法有何用处?

视图v是OnClickListener已附加到的元素。您只需将方法中的textview更改为v

        final EditText textview = new EditText(this);
        textview.setText("Nothing to display as DB Read failed!!");
        textview.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                textview.setText("Stop clicking me");
            }
        });

通过自动生成的构造函数复制从匿名类内部访问的外部类的对象引用。
但是您只能访问声明为final的变量,因此一旦复制,外部类的其余部分就不可能修改它们

至于视图v,正如SimonR所说,它是对文本视图本身的引用。

但是在调用setText(…)之前,您必须将其转换为TextView。不清楚您在问什么。我相信您是在问,即使
onCreate()
回调已结束,单击侦听器如何能够使用回调内创建的引用(
TextView
)调用
TextView.setText()
)。如果这是你的情况,请重新格式化你的问题,使之清晰。Thanx@kushtrim!!所以我知道textview将成为接口的一个成员,稍后在执行onClick时可以访问该接口。我说的对吗?是的,我是匿名内部阶级的成员。
v.setText("Stop clicking me");