【问题标题】:On Android, why can View.OnClickListener instances call their parent's methods as though they were their own?在 Android 上,为什么 View.OnClickListener 实例可以像调用它们自己的方法一样调用它们父级的方法?
【发布时间】:2011-08-18 21:19:48
【问题描述】:

我有一个主 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() 函数。这怎么可能?

【问题讨论】:

标签: java android namespaces onclick listeners


【解决方案1】:

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

【讨论】:

  • 谢谢,这很有道理。 (我还没有足够的声望给你投票,对不起!)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-01
  • 1970-01-01
  • 2014-01-22
  • 1970-01-01
  • 1970-01-01
  • 2012-01-09
  • 1970-01-01
相关资源
最近更新 更多