函数从自定义OnClickListener调用

时间:2013-06-14 17:47:51

标签: java android function onclicklistener

我有 Main_Activity.class 文件。在那里,我定义了一个自定义函数 myFunction()。在这个函数中,我想调用一个外部定义的自定义 OnClickListener ,它将以递归方式调用该函数。

Main_Activity 中,按钮定义为

private Button button;
.
.
button = (Button)findViewById(R.id.button);
.
.

我的 myFunction() Main_Activity.class 中定义。在此函数中,定义了 OnClickListener for按钮。通过此 OnClickListener ,我可以轻松调用 myFunction()

private void myFunction(){
  button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                                 myFunction();
            }
        });
}

但是我想为按钮定义一个自定义MyClickListenerClass并从该外部类调用myFunction()。

怎么可能?

1 个答案:

答案 0 :(得分:3)

试试这个,

的活动:

 public class Main_Activity extends Activity
{

    Button button;
    MainActivity act;
    MyClickListener listener;

    @Override
    protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            button = (Button) findViewById(R.id.button1);
            listener = new MyClickListener(this);
            myFunction();
        }

    public void myFunction()
        {
            button.setOnClickListener(listener);
            Log.i("Fun clicked from", "sdfnd");
        }
}

和班级:

public class MyClickListener implements OnClickListener 
{
    MainActivity act;
      public MyClickListener(MainActivity act) { 
         this.act=act;

      }
    @Override
    public void onClick(View v)
        {
            act.myFunction();

        } 
}