我正在建立一个项目,该项目将从用户处接收详细信息,将其插入SQLite数据库,并将在Second Activity的ListView上显示用户提供的信息。
我尝试了许多教程,并在互联网上提出了建议,尝试了ActivityForResult,尝试了不使用Switch的方法,但是似乎仍然没有任何效果。
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;
}
我希望它可以运行第二个活动。但是当我尝试在活动之间进行切换时,它仍然会崩溃
答案 0 :(得分:0)
case R.id.SecondActivity:
Intent i = new Intent(this, SecondActivity.class);
startActivity(i);
break;
AndroidManifest.xml中是否存在第二个能力检查中的问题
或在intent调用中(如果不是片段的话)使用Intent i = new Intent(getApplicationContext(),SecondActivity.class);
答案 1 :(得分:-1)
在您的SecondActivity
中,第24行:
Cursor getUserData=db.query(HelperDB.TABLE_USER,null,null,null,null,null,null);
但是,此时(在SecondActivity
初始化期间),变量db
在第21行被声明(但未分配)(在以下位置被分配为时已晚): onCreate()
在第33行)。请注意,类的<init>
比调用此onCreate()
的时间要早得多。
因此,将这两个Cursor
移动到第33行之后(也许在第33行和第34行之间)将解决此问题。