gpt4 book ai didi

java - 在 android 中,如何以编程方式将按钮从按钮数组添加到 TableLayout 中?

转载 作者:行者123 更新时间:2023-11-29 22:10:24 25 4
gpt4 key购买 nike

我是 Android 编程的新手,过去 6 周才开始学习它,并且正在为 Android 编写一个扫雷游戏,我已经顺利完成了游戏的某些部分。但是,我必须使用 TableLayout 和 TableRow 以编程方式设计一个网格,并在其中插入按钮;所以我写了几行代码来做到这一点,但每当我运行游戏时,我都会收到“确认视角切换”错误。

这是我写的代码-

` public class Game extends Activity implements OnClickListener {

Button[][] btn = new Button[6][6];
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.gamegrid);

int i, j;

LinearLayout layoutVertical = (LinearLayout) findViewById(R.layout.gamegrid);
//create a new TableLayout
TableLayout table = null;

table.setStretchAllColumns(true);
table.setShrinkAllColumns(true);

LayoutParams param = new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);

for(i = 0; i <6; i++){
table = new TableLayout(this);
table.setWeightSum(5);
layoutVertical.addView(table, param);
for(j=0; j<7; j++){
btn[i][j] = new Button(this);
table.addView(btn[i][j], param);
btn[i][j].setOnClickListener(this);
}
} return;
}
public void onClick(View arg0) {
// TODO Auto-generated method stub

}

} `

我认为我的问题在于以下几行 -

`for(i = 0; i <6; i++){
table = new TableLayout(this);
table.setWeightSum(5);
layoutVertical.addView(table, param);
for(j=0; j<7; j++){
btn[i][j] = new Button(this);
table.addView(btn[i][j], param);
btn[i][j].setOnClickListener(this);
}
}`

假设创建按钮,然后将它们存储在按钮数组中,然后将按钮插入到 TableLayout 中!

为什么会出现上述错误?

你能帮我指出哪里做错了吗?因为我没有显示任何错误。

谢谢

最佳答案

如果你想使用 TableLayout 那么你需要构建的东西看起来像这样(以 4x4 网格为例)

TableLayout
TableRow
Button
Button
Button
Button
TableRow
Button
Button
Button
Button
TableRow
Button
Button
Button
Button
TableRow
Button
Button
Button
Button

1 个包含 4 个 TableRow 的 TableLayout,每行包含 4 个按钮(4x4 网格)。在代码中它可能会这样:

Button[][] buttonArray = new Button[4][4];
TableLayout table = new TableLayout(context);
for (int row = 0; row < 4; row++) {
TableRow currentRow = new TableRow(context);
for (int button = 0; button < 4; button++) {
Button currentButton = new Button(context);
// you could initialize them here
currentButton.setOnClickListener(listener);
// you can store them
buttonArray[row][button] = currentButton;
// and you have to add them to the TableRow
currentRow.addView(currentButton);
}
// a new row has been constructed -> add to table
table.addView(currentRow);
}
// and finally takes that new table and add it to your layout.
layoutVertical.addView(table);

关于java - 在 android 中,如何以编程方式将按钮从按钮数组添加到 TableLayout 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9777451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com