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

时间:2015-06-27 10:39:29

标签: java android

        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");
            }
        });

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

我对Java比较陌生。任何人都可以解释如何访问该对象? 还有一件事..为什么我需要传递View v参数?这个方法有什么用呢?

2 个答案:

答案 0 :(得分:0)

View v是元素,OnClickListener已附加到该元素上。您只需将方法中的textview更改为v。

即可
LTRIM(REPLACE (Lastname, Firstname + ' ', ''))

答案 1 :(得分:0)

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

对于查看v ,如 SimonR 所说,它是对textview本身的引用。
但是在调用 setText(...)

之前,您必须将其强制转换为TextView