将onclicklistener添加到按钮数组

时间:2019-04-02 07:04:38

标签: java android

我正在制作一个应用程序,以节省时间,将按钮保存在数组中,但似乎无法将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循环能够正常工作,但是每当我尝试加载将这些按钮放在应用程序中的活动时,都会崩溃

1 个答案:

答案 0 :(得分:0)

在设置侦听器之前,请确保在此使用的每个按钮都已正确实例化,可以设置断点或登录以检查所有实例是否正确实例化。