我为一门java课程制作了LightsOut游戏,并且作为一种学习android的方法,我试图将其重建为一个应用程序。
主要活动包括一个togglebuttons网格。当“检查”按钮时,它和它的相邻按钮被切换。当所有按钮都关闭时,游戏就赢了。我已经让它工作到了这一点,但代码是可怕的。
我想通过制作一个togglebuttons的二维数组来清理代码。我现在如何拥有它,我只需单独声明每个按钮。这使得大块冗余代码无法轻松扩展。
最初,在java中我这样做了:
buttons = new LightButton[xCor][xCor];
for (int x = 0; x < xCor; x++) {
for (int y = 0; y < xCor; y++) {
buttons[x][y] = new LightButton(this, x, y);
panel.add(buttons[x][y]);
}
}
xCor基于构建游戏场之前的用户输入。这使得通过遍历阵列初始化和检查游戏的状态变得容易。我根本没有找到用android做这个的方法。
那么,有没有办法根据用户输入制作一个togglebuttons数组/列表?
以下是活动:
公共类LightsOutActivity扩展了Activity实现OnClickListener {
protected ToggleButton[][] buttonArray;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
buttonArray = new ToggleButton[4][4];
for (int x = 0; x < 4; x++) {
for (int y = 0; y < 4; y++) {
buttonArray[x][y] = new ToggleButton(this);
LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT, 1.0f);
buttonArray[x][y].setLayoutParams(params);
((ViewGroup) findViewById(R.layout.main)).addView(buttonArray[x][y]);
}
}
setContentView(findViewById(R.layout.main));
}
立即导致力量关闭。 R.layout.main中唯一的视图是线性布局。现在我已经硬编码了数组大小。
答案 0 :(得分:0)
你不能从EditText视图中获取用户输入吗?然后,您可以使用该输入初始化数组。