0

我有一个主要活动,在 OnCreate() 中我实例化了 81 个按钮(MyButton 类派生自 FrameLayout)。在构造函数的 MyButton 类中,我创建了 Eventhandler 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 回答