我是 Java 新手(来自 Python),我正在尝试将方法作为参数传递以转换此代码:
Button button1;
Button button2;
...
Button buttonN;
button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onClick_button1(v);
}
});
button2 = (Button) findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onClick_button2(v);
}
});
(...)
buttonN = (...)
类似于:
public AssignListener( integer tButton, Method tMethod )
{
button_view = (Button) findViewById(tButton);
button_view.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View view) {
tMethod(view);
}
}
}
(...)
AssignListener( R.id.button1, onClick_button1 );
AssignListener( R.id.button2, onClick_button2 );
(...)
AssignListener( R.id.buttonN, onClick_buttonN );
我读过你不能将方法传递给函数,以及一些建议使用 Runnable 包装我的函数来实现这一点。
我不清楚该怎么做。关于如何轻松做到这一点的任何想法?:?
谢谢。
编辑:我应该将“AssignListener”包装在它自己的类中并传递类本身吗?:?