使onClickListener成为静态方法

时间:2019-05-30 07:56:38

标签: android onclicklistener

View.OnClickListener ocl = new View.OnClickListener(){
    public void onClick(View v) {
        this.ocl_action();
    }

    public void ocl_action() {
        // TODO Auto-generated method stub
        for(int i=0; i<5;i++){                               }
            Toast.makeText(ControllerProjMain.this,"hi",Toast.LENGTH_LONG).show();           
        }
    }
};

如果我只打ocl.ocl_action();

,那是行不通的

3 个答案:

答案 0 :(得分:0)

在侦听器主体外部定义ocl_action()函数,并在函数调用时删除关键字“ this”。

答案 1 :(得分:0)

查看代码中的更改。您需要在侦听器外部定义方法ocl_action

View.OnClickListener ocl = new View.OnClickListener(){
    public void onClick(View v) {
        this.ocl_action();
    }};

public void ocl_action() {
 // TODO Auto-generated method stub
  for(int i=0; i<5;i++){                              
  Toast.makeText(getApplicationContext(), "HI", Toast.LENGTH_LONG).show();   
  }
}

答案 2 :(得分:0)

首先,将您的函数拉出onClick()方法之外。在onClick()方法内部this不会指出您的活动。因此,在进行函数调用时,请删除this

View.OnClickListener ocl = new View.OnClickListener(){
public void onClick(View v) {
    ocl_action();
}};

public void ocl_action() {
 // TODO Auto-generated method stub
  for(int i=0; i<5;i++){                              
  Toast.makeText(getApplicationContext(), "HI", Toast.LENGTH_LONG).show();   
  }
}