0

メイン アクティビティがあり、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);

            }
        }
    });
}

前もって感謝します

4

1 に答える 1

0

まず、onCreate メソッドに次のような行がありません。

setContentView(R.layout.main);

R.layout.main定数をアクティビティのレイアウトを参照する定数に変更し、次の行の直後に行を配置します。super.onCreate(savedInstanceState);

于 2013-10-17T10:46:43.720 に答える