ボタンのサブクラスであるオブジェクトの配列をコードで作成したいと考えています。
public class MyButton extends Button {
private Context ctx;
private int status;
public MyButton(Context context) {
super(context);
ctx = context;
status = 0;
}
private click() {
status = 1;
// OTHER CODE THAT NEEDS TO STAY HERE
}
}
主な活動では、私はこれを行います:
public class myActivity extends Activity {
private MyButton[] myButtons = new MyButton[100];
@Override
public onCreate(Bundle si) {
super.onCreate(si);
createButtons();
}
private void createButtons() {
for (int w=0; w<100; w++) {
myButtons[w] = new MyButton(myActivity.this);
myButtons[w].setOnClickListener(new View.onClickListener() {
public void onClick(View v) {
// ... (A)
}
});
}
}
}
ここで、ボタンがクリックされるたびに MyButton 内の click() メソッドが実行されるようにします。当たり前のようですが、私の目にはありません。
click() メソッドを public にして (A) から直接実行すると、myButtons[w].click() が静的ではなく、そこから実行できないため、エラーが発生します。
それまでの間、クリックをインターセプトしてそこから click() を実行するコードを MyButton クラスのどこに置くべきか理解できませんでした。onClick をオーバーライドする必要がありますか? または、onClickListener をオーバーライドする必要がありますか? または、他に何をすべきですか?
myButtons[] オブジェクトの 1 つがクリックされるたびに click() を実行するにはどうすればよいですか?
助けてくれてありがとう。