@Override public void onClick(View view) { if (ButtonOnCilk.isFastViewClick(inventoryButton, getBaseContext())) { intent=new Intent(getApplicationContext(), MainActivity.class); CustomToast.showLoad(HomeActivity.this, getString(R.string.load)); List<String> data = readExcelFile(); listView = findViewById(R.id.rv_list); ArrayAdapter<String> adapter = new ArrayAdapter<>(HomeActivity.this, android.R.layout.simple_list_item_1, data); listView.setAdapter(adapter); startActivity(intent); } } });Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference怎么解决
时间: 2023-11-22 21:56:47 浏览: 183
Android中Intent传递对象的3种方式详解
这个错误是因为 `listView` 对象为 null,而你在调用 `listView.setAdapter(adapter)` 时需要先确保 `listView` 不为 null。你可以在调用 `findViewById` 方法后检查 `listView` 是否为 null,如果是,则需要检查布局文件中是否正确设置了 `ListView` 的 id。
以下是可能的解决方案:
1. 检查布局文件中是否正确设置了 `ListView` 的 id。
2. 将 `findViewById` 方法的返回值赋给 `listView` 变量,并确保它不为 null。
3. 在调用 `listView.setAdapter(adapter)` 之前,检查 `listView` 是否为 null。
示例代码:
```
listView = findViewById(R.id.rv_list);
if (listView != null) {
ArrayAdapter<String> adapter = new ArrayAdapter<>(HomeActivity.this, android.R.layout.simple_list_item_1, data);
listView.setAdapter(adapter);
}
```
阅读全文