我正在制作一个应用程序,以节省时间,将按钮保存在数组中,但似乎无法将onClickListener添加到数组中的按钮上。
当我替换通过
添加onClickListener的循环时buttons[0].setOnClickListener;
button[1].setOnClickListener;
代码工作正常,但是当我用下面所示的循环替换它
for (int i = 0; i < 91; i++)
buttons[i].setOnClickListener(this);
我在for循环内的行上收到此错误“试图在空对象引用上调用虚拟方法'void android.widget.Button.setOnClickListener(android.view.View $ OnClickListener)'”。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
board = (TableLayout) findViewById(R.id.tableLayout);
bar = (TableLayout) findViewById(R.id.tableLayout2);
buttons = new Button[91];
for (int i = 2; i < 93; i++) {
String str = "button" + i;
if (i != 6) {
button = findViewById(getResources().getIdentifier(str, "id", getPackageName()));
buttons[i - 2] = button;
}
}
text = findViewById(R.id.textView2);
for (int i = 0; i < 91; i++) {
buttons[i].setOnClickListener(this);
}
}
我希望onClickListener循环能够正常工作,但是每当我尝试加载将这些按钮放在应用程序中的活动时,都会崩溃
答案 0 :(得分:0)
在设置侦听器之前,请确保在此使用的每个按钮都已正确实例化,可以设置断点或登录以检查所有实例是否正确实例化。