我正在使用rawQuery方法将数据列表作为Cursor并使用startManagingCursor()和stopManagingCursor()方法。 Activity1和Activity2没有问题但是当我尝试从Activity3转到Activity2时它会显示04-09 17:37:59.629: E/AndroidRuntime(6509): java.lang.RuntimeException: Unable to resume activity {com.nepways.nlocate/com.nepways.nlocate.BusinessOrganizationActivity}: java.lang.IllegalStateException: database /data/data/com.nepways.nlocate/databases/nLocateDatabaseNew.db already closed
有人帮忙吗?
更新代码
public class BusinessActivity extends Activity implements OnItemClickListener {
private ArrayList<Business> businessList = new ArrayList<Business>();
private BusinessListAdapter businessListAdapter;
private ListView lvBusiness;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.business_list);
businessList = getIntent().getParcelableArrayListExtra("businessList");
businessListAdapter = new BusinessListAdapter(this, businessList);
lvBusiness = (ListView) findViewById(R.id.lvBusiness);
lvBusiness.setAdapter(businessListAdapter);
// lvBusiness.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add("Search").setIcon(R.drawable.ab_search).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
// return super.onCreateOptionsMenu(menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getTitle().toString().equalsIgnoreCase("Search")) {
startActivity(new Intent(this, SearchActivity.class));
}
return super.onOptionsItemSelected(item);
}
@Override
protected void onDestroy() {
super.onDestroy();
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onPause() {
super.onPause();
}
}
答案 0 :(得分:1)
请打开您的数据库,清楚地提到您的数据库已关闭。
打开数据库调用getReadableDatabase()