1

フォームに値を取得できました。値は、保存ボタンをクリックするとテーブルに挿入され、同時に同じフォームにも取得されます(同じ保存クリックで)。しかし、問題はそれぞれ値をクリックすると連続フローで表示されます。前回のクリック後に画面をクリア(フォームから値をフラッシュ)し、最新のテーブル状態値のみを表示したいです。私が取り組んでいるコードは次のとおりです。

   public void fieldChanged(Field field, int context) //respond to button events
        {

            if (field == showInputButton) //if first button selected
            { 
                Dialog.alert(TextField1.getText()); //show text from first input field  

                try
                {    
                    //Open or create the database
                    Database db = DatabaseFactory.openOrCreate("database1.db");    

                    //Insert Data from db
                    Statement statement1 = db.createStatement("INSERT INTO DirectoryItems(category_id,name,phone,email) VALUES ('1','"+TextField1.getText()+"','"+TextField2.getText()+"','"+TextField3.getText()+"')");
                    statement1.prepare();
                    statement1.execute();       
                    statement1.close(); 
                  //Retrieve data
                    try
                    {
                            add(new RichTextField("Attempting to retrieve data from " + 
                                                                                        "database1.db on the SDCard."));


                            Statement st = db.createStatement("SELECT name FROM DirectoryItems");

                            st.prepare();


                            Cursor c = st.getCursor();

                            Row r;
                            int i = 0;

                            while(c.next()) 
                            {
                                        r = c.getRow();
                                        i++;
                                       add(new RichTextField(i + "Name = " + r.getString(0)));
                            }
                            if (i==0)
                            {
                                        add(new RichTextField("No data in the DirectoryItems table."));
                            }
                            st.close();
                            db.close();
                     }
                     catch( Exception e ) 
                    {         
                        System.out.println( e.getMessage() );
                        e.printStackTrace();
                    }

                  }

誰もがこれを知っていますか.みんなにアドバイスしてください.

4

1 に答える 1

1

ボタンを無効にして、ユーザーが値を 1 回だけ取得できるようにすることもできます (つまり、最新の値)。

 ((ButtonField)showInputButton).setEnabled(false);

フィールド変更の実装でそれを使用します。ボタンを無効にすると、フェッチされた値を適切に把握できます(あなたの場合のように)。

于 2012-05-14T10:21:57.943 に答える