分配2d按钮数组的文本

时间:2014-04-28 14:40:25

标签: android arrays button

在android中我有一系列按钮,我这样声明 按钮网格[] [] =新按钮[3] [3];

然后我设置grid [0] [0] =(Button)findViewById(R.id.Middle_Middle)确实存在

当我尝试通过

更改文本时

调用grid [0] [0] .setText(“U”);

我崩溃了。我知道它不是数组的声明或设置,因为当我进入我用来设置文本的函数时它只会崩溃。关于为什么会崩溃的任何想法

2 个答案:

答案 0 :(得分:0)

如果Button.setText()抛出NullPointerException,则您的布局(R.id.Middle_Middle)中的按钮当前不得在您的内容视图中膨胀/存在。

由于按钮网格[] [] =新按钮[3] [3];实际上并没有创建您尝试访问的按钮,当您尝试设置文本时它将抛出NPE(因为您的findViewById()方法在尝试设置单个时返回null)。

在访问按钮之前,您需要实际实例化按钮。

例如

Button grid[][] = new Button[3][3];
for(int i = 0; i < grid.length; i++){
   for(int j = 0; j < grid[i].length; j++) {
           grid[i][j] = new Button(context);
           parent.addView(grid[i][j]);
       }
}

除非你为每个人使用findViewById()手动设置按钮,但这似乎是为了保持多维数组中按钮的引用而做的额外工作。

答案 1 :(得分:0)

你确定findViewByID(R.id.Middle_Middle)不返回null元素吗?

确保首先执行布局的setContentView并获取元素。