在Java中调用具有相同名称的方法中的另一个方法

时间:2016-04-14 11:59:25

标签: java android methods

我试图调用我创建的方法很久才发现我用于其他东西的接口需要我调用它的预定义方法,这与我想在里面调用的方法的名称相同。 例如:

public void onClick(View v) {
    //doSomething
}
public void method() {
    Button btn = new Button(this);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //here I want to call the top onClick method
        }
    });
}

你们能帮助我如何使用top方法,而不是递归内部方法? Thx提前。 JF

2 个答案:

答案 0 :(得分:3)

语法为:

<enclosing-class>.this.onClick();

所以,如果您在MainActivity中说,那么:

MainActivity.this.onClick();

答案 1 :(得分:1)

要使用的语法是OuterClass.this.methodName();

例如,如果外部类为A,则需要调用A.this.onClick();

interface IOnClick {
    public void onClick();
}

class A {
    public void onClick(){
    }

    public void test(){
        IOnClick ic = new IOnClick(){
            public void onClick(){
                A.this.onClick();
            }
        };
    }
}