我试图解决一直在与整天作战的'最终确定'错误。在我尝试了许多不同的数据库和cursor'.close()方法后,此问题仍然存在。光标生命周期问题
显示的代码是它现在的样子。如果有人能够以正确的方式引导我关闭游标和数据库,这是非常好的,因为目前如果我关闭它,它似乎与另一个冲突!
目前我正尝试使用从对话列表的Intent调用的'AddAppointmentContact'类的'onCreate'方法中设置的对象方法设置'EditText'。
目前我得到这个错误:
错误:
02-01 21:23:18.947: E/Cursor(274): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/com.example.flybase2/databases/persons_name, table = contactsTable, query = SELECT _id, persons_name, persons_telephone, persons_email, persons_comments FROM contactsTable WHER
我运行类似的代码,其他地方在我的代码,并能正常工作。
这是我从保存对话框列表视图中选择的名字的ID绑定代码:
else if (items[item].equals("Add Appointment")) {
Intent conAdd = new Intent("com.example.flybase2.AddAppointmentContact");
conAdd.putExtra("newpassedID", idToPass);
startActivity(conAdd);
,这是打开“AddAppointmentContact”类:
Bundle extras = getIntent().getExtras();
sentID = extras.getLong("newPassedID");
DBHandlerApp NameAppointPass = new DBHandlerApp(this, null, null);
NameAppointPass.open();
String nameReturned = NameAppointPass.getName(sentID);
setName = (EditText) findViewById(R.id.inputAppName);
setName.setText(nameReturned);
和'.getName()'方法:
public String getName(long passedID) {
String [] columns = new String[]{KEY_ROWAPPID, KEY_NAMEAPP, KEY_TYPEAPP, KEY_TIMEAPP, KEY_DATEAPP, KEY_COMMENTAPP};
Cursor c = ourDatabase.query(DATABASE_TABLEAPP, columns, KEY_ROWAPPID + "=" + passedID, null, null, null, null);
if(c != null && c.getCount() > 0)
{
c.moveToFirst();
String name = c.getString(1);
return name;
}
return null;