私は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」を独自のクラスにラップして、クラス自体を渡す必要がありますか? :?