メイン アクティビティがあり、OnCreate() で 81 個のボタン (FrameLayout から派生したクラス MyButton) をインスタンス化します。コンストラクターのクラス MyButton で、イベントハンドラー onClick() を作成します。onClick() 関数 (if ステートメント) にブレークポイントを設定しました。アプリをデバッグしてボタンをクリックすると、アプリはすべてのボタンの onClick() 関数で停止しますが、ボタンでは停止しません[8]。誰かが理由を知っていますか?
コードスニペットは次のとおりです。
public class MainActivity extends Activity {
public MyButton[] buttons;
@Override
protected void onCreate(Bundle savedInstanceState) {
int i;
super.onCreate(savedInstanceState);
GridLayout myGrid=(GridLayout)findViewById(R.id.gridLayout);
buttons=new MyButton[81];
for(i=0;i<81;i++) {
buttons[i]=new MyButton(this,i);
myGrid.addView(buttons[i]);
}
}
}
public class MyButton extends FrameLayout {
public int Position;
public MyButton(Context context,int pos)
{
super(context);
Position = pos;
.
.
.
setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (v instanceof MyButton ) {
MainActivity ma=(MainActivity)v.getContext();
if(ma.sudAct!=null) ma.setButton(Position);
}
}
});
}
前もって感謝します