Sqlite 在菜单上调用startActivity函数会使应用程序崩溃
我正在设置一个项目,该项目将接收用户的详细信息,将其插入SQLite数据库,并在第二个活动的ListView上显示用户提供的信息 我在互联网上尝试了很多教程和建议,尝试了ActivityForResult,尝试了不使用Switch,但仍然没有任何效果Sqlite 在菜单上调用startActivity函数会使应用程序崩溃,sqlite,android-studio,android-activity,Sqlite,Android Studio,Android Activity,我正在设置一个项目,该项目将接收用户的详细信息,将其插入SQLite数据库,并在第二个活动的ListView上显示用户提供的信息 我在互联网上尝试了很多教程和建议,尝试了ActivityForResult,尝试了不使用Switch,但仍然没有任何效果 public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.SecondActivity:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.SecondActivity:
Intent i = new Intent(this, SecondActivity.class);
startActivity(i);
break;
case R.id.credits:
Toast.makeText(MainActivity.this,
"some text ;)", Toast.LENGTH_LONG).show();
break;
}
return true;
}
我希望它能运行第二个活动。但当我尝试在活动之间切换时,它总是崩溃
case R.id.SecondActivity:
Intent i = new Intent(this, SecondActivity.class);
startActivity(i);
break;
如果AndroidManifest.xml中存在或不存在第二个活动性检查,则可能会出现问题
如果不是片段,则在意图调用中使用intent i=newintent(getApplicationContext(),SecondActivity.class) 在您的第24行:
Cursor getUserData=db.query(HelperDB.TABLE_USER,null,null,null,null,null,null);
但是,此时(在初始化SecondActivity
期间),变量db
已声明(第21行),但未赋值(在第33行的onCreate()
中赋值太晚了)。请注意,类的
远远早于调用此onCreate()
因此,将这两个
光标移动到第33行之后(可能在第33行和第34行之间)将解决此问题。请添加此崩溃的日志。您是否在AndroidManifest.xml
中添加了SecondActivity
?抱歉,我不知道如何操作。是的,它位于src/main/AndroidManifest.xml
中的.xml文件中,您是否添加了类似的内容,例如,以@aslox开头,您所说的“无法解决问题”是什么意思?stacktrace(中的第35行到第59行)是否仍然相同?我猜新的问题是由过早的db.close()
生成的。我尝试将第24,25行移动到34,35行(在onCreate函数中),但这些行不起作用。观察新运行数据:@asslox Yes,读取新运行数据中的第110行和第115行,您应该删除db.close()
行,或者将其放在最底部,例如在onCreate()
块的末尾。