0

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);」データベースを更新する必要がありますが、更新されません。これは完璧なコードではないことを認識しているので、どんなアイデアでも感謝しています。ありがとう

4

1 に答える 1

0

わかったのは大丈夫です、それは更新の深さに関係していました。

于 2012-07-30T09:13:39.530 に答える