我試圖解決一直在與整天作戰的'最終確定'錯誤。在我嘗試了許多不同的數據庫和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;