我正在尝试更改按钮数组的属性,但是我遇到了一些非常奇怪的错误。我试图循环遍历按钮来编辑每个按钮的高度属性,但是当我设置 for 循环 (i=0; i<3; i++) 时,buttonSkater[i].setHeight(buttonHeight);结果好像有9个按钮被改变了!当我设置 i<14(有 14 个按钮)时,应用程序会崩溃并出现 NullPointerException。
package com.rollerderby.lineuptracker;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.Button;
public class Setup extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.setup);
Button[] buttonSkater = new Button[14];
buttonSkater[0] = (Button) findViewById(R.id.buttonSkater1);
buttonSkater[1] = (Button) findViewById(R.id.buttonSkater2);
buttonSkater[2] = (Button) findViewById(R.id.buttonSkater3);
int screenHeight = getWindowManager().getDefaultDisplay().getHeight();
int buttonHeight = (screenHeight-60)/14;
for(int i=0; i<14; i++)
{
buttonSkater[i].setHeight(buttonHeight);
}
}
}
这似乎是一个非常奇怪的错误...我是否遗漏了一些明显的东西?
(通过为新按钮创建空间来调整数组大小错误?)
最佳答案
纯粹基于您的代码示例,您尝试访问仅设置了 3 个索引(0 到 2)的数组中的第 3 到 14 个元素,其他索引(默认情况下)初始化为 null。至于 14 个按钮,它们可能是 3 个按钮的 14 个实例吗?
关于java - Android 的 Java 中一个非常奇怪的 for 循环错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8607844/