Java 从自定义OnClickListener调用函数
我有主要活动.class文件。在这里,我定义了一个自定义函数myFunction()。在这个函数中,我想调用一个外部定义的自定义OnClickListener,它将递归调用该函数 在主活动中,按钮定义为Java 从自定义OnClickListener调用函数,java,android,function,onclicklistener,Java,Android,Function,Onclicklistener,我有主要活动.class文件。在这里,我定义了一个自定义函数myFunction()。在这个函数中,我想调用一个外部定义的自定义OnClickListener,它将递归调用该函数 在主活动中,按钮定义为 private Button button; . . button = (Button)findViewById(R.id.button); . . MymyFunction()在主活动类中定义。在这个函数中定义了OnClickListenerfor按钮。从这个OnClickListener,
private Button button;
.
.
button = (Button)findViewById(R.id.button);
.
.
MymyFunction()在主活动类中定义。在这个函数中定义了OnClickListenerfor按钮。从这个OnClickListener,我可以轻松调用myFunction()
private void myFunction(){
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
myFunction();
}
});
}
但是我想为button定义一个自定义MyClickListenerClass,并从该外部类调用myFunction()
怎么可能呢?试试这个
活动:
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();
}
}
试试这个
活动:
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();
}
}
工作很好。谢谢。:)还有别的方法吗?很好。谢谢。)还有别的办法吗?