public void onClick(View view) { if (ButtonOnCilk.isFastViewClick(inventoryButton, getBaseContext())) { intent = new Intent(getApplicationContext(), MainActivity.class); CustomToast.showLoad(HomeActivity.this, getString(R.string.load)); setContentView(R.layout.activity_main); startActivity(intent); // 读取 Excel 文件 List<String> data = readExcelFile(); listView = findViewById(R.id.rv_list); // 将数据显示在 ListView 中 ArrayAdapter<String> adapter = new ArrayAdapter<>(HomeActivity.this, android.R.layout.simple_list_item_1, data); listView.setAdapter(adapter); } } });页面闪退怎么解决
时间: 2023-07-16 18:14:38 浏览: 84
根据提供的代码,出现闪退的原因可能是因为在点击按钮的时候,跳转到了 `MainActivity`,但是在 `MainActivity` 中使用了 `setContentView()` 方法,该方法会设置该 Activity 的布局,但是在该方法调用之前,已经调用了 `CustomToast.showLoad()` 方法,该方法需要在布局加载完成之后才能显示,因此会造成程序崩溃。
解决方法如下:
1. 将 `CustomToast.showLoad()` 方法的调用放置在 `MainActivity` 的 `onCreate()` 方法中,确保布局加载完成后再显示 Toast。
2. 在 `HomeActivity` 中调用 `startActivity(intent)` 方法之前,先调用 `setContentView()` 方法,确保布局先被加载完成。
修改后的代码如下:
```
public void onClick(View view) {
if (ButtonOnCilk.isFastViewClick(inventoryButton, getBaseContext())) {
intent = new Intent(getApplicationContext(), MainActivity.class);
setContentView(R.layout.activity_main); // 先加载布局
CustomToast.showLoad(HomeActivity.this, getString(R.string.load)); // 在布局加载完成后再显示 Toast
startActivity(intent);
// 读取 Excel 文件
List<String> data = readExcelFile();
listView = findViewById(R.id.rv_list);
// 将数据显示在 ListView 中
ArrayAdapter<String> adapter = new ArrayAdapter<>(HomeActivity.this, android.R.layout.simple_list_item_1, data);
listView.setAdapter(adapter);
}
}
```
阅读全文