db4o データベースが更新されません。私の ViewContact クラスには、押されたときにユーザーに入力を求め、それをデータベースに保存するボタンがあります。アイデアを保存していませんか?
ViewContact クラスの問題コードを以下に掲載しましたが、
@SuppressLint({ "ParserError", "ParserError", "ParserError", "ParserError" })
public void onClick(View v) {
switch(v.getId())
{
/*THIS IS THE ADD PHRASE BUTTON*/
case R.id.bAddP:
/*ALERT BOX LAUNCHES*/
final AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Title");
alert.setMessage("Message");
/* Set an EditText view to get user input */
final EditText input = new EditText(this);
alert.setView(input);
/*THIS IS FOR WHEN OK IS PRESSED*/
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
/*VALUE OF USER INPUT*/
String value = input.getText().toString();
/* OPEN DB4O AND UPDATE CONTACT OBJECT*/
ObjectContainer db = Db4oEmbedded.openFile(Db4oEmbedded
.newConfiguration(), db4oDBFullPathSdCard(context));
try {
/*QUERY BY EXAMPLE TO GET CONTACT
USING "t" WHICH IS PARCELABLE OBJECT PASSED FROM
FIRST ACTIVITY*/
ObjectSet result = db.queryByExample(new NewContact(t.getName()));
NewContact found = (NewContact) result.next();
/*storePhrase STORES A STRING INTO THE OBJECTS
ARRAYLIST*/
found.storePhrase(value);
/*UPDATE DATABASE,
THIS IS NOT UPDATING! HERE IS PROBLEM*/
db.store(found);
Class ourContact = Class.forName("com.text.q.ViewContacts");
Intent i = new Intent(ViewContact.this, ourContact);
//REPARCEL OBJECT SO NAME CAN BE USED AGAIN
i.putExtra("New", t);
finish();
startActivity(i);
/*REFRESH ACTIVITY*/
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally {
db.close();
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});
alert.show();
break;
}
}
問題は、bAddP の onClick メソッドにあります。アクティビティを終了して再開したときに新しいフレーズが表示されるように、データベースを更新しようとしています。行「db.store(found);」データベースを更新する必要がありますが、更新されません。これは完璧なコードではないことを認識しているので、どんなアイデアでも感謝しています。ありがとう