java - 在 Android 上,为什么 View.OnClickListener 实例可以像调用它们自己的方法一样调用它们父类的方法?

标签 java android namespaces onclick listeners

我有一个主 Activity 类,它有一个按钮,我为其分配了一个 OnClickListener:

public class MyMainClass extends Activity {
    protected void initWidgets() {
        btAddProfile = (Button) findViewById(R.id.btAddProfile);
        btAddProfile.setOnClickListener(onAddProfileClick);
    }

    protected View.OnClickListener onAddProfileClick = new View.OnClickListener() {
        public void onClick(View view) {
            addHotspot();
        }
    };

    protected void addHotspot(){
        //doStuff
    }
}

onAddProfileClick 实例是 MyMainClass 的子实例,但它能够在不引用 MyMainClass 的情况下调用 MyMainClass 的 addHotspot() 函数。这怎么可能?

最佳答案

这不是它们的父类,而是它们的封闭类,它们可能会这样做,因为它们与封闭对象相关联并在其范围内。 (当您编写 addHotspot() 时,会隐式调用 MyMainClass.this.addHotspot())

关于java - 在 Android 上,为什么 View.OnClickListener 实例可以像调用它们自己的方法一样调用它们父类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7114276/

相关文章:

android - 无法使用 Cordova 插件在 Android Studio 中编译 Cordova 项目

matlab - 包中的引用函数 matlab

c# - 创建可重用企业命名空间的最佳实践

actionscript-3 - 用于更新 AIR 应用程序 XML 混淆的命名空间值

java - Jface ContentProposalAdapter 不适用于第一个输入的字符

java - 如何从集合中删除

java - 带有参数和类路径变量的 Jar 文件

android - 动画列表中的所有项目

android - ListActivity 和 ListView

java - 从反射 Java 获取类类型