如何从表单中刷新检索的数据库值

时间:2012-04-24 08:43:00

标签: sqlite blackberry

我已经能够将值检索到我的表单中。这些值在保存按钮单击时被插入到表中,同时也被检索到相同的表单上(在相同的保存点击上)。但现在的问题是每次单击时,值将以连续流的形式显示。我想在上一次单击后清除屏幕(从表单中刷新值),并仅显示最新的表状态值。 下面是我正在处理的代码:

   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();
                    }

                  }

有谁知道这个。请告诉大家。

1 个答案:

答案 0 :(得分:1)

您可以通过禁用按钮继续进行,以便允许用户仅获取一次值(即最新值)

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

在字段更改的实现中使用它。禁用按钮有助于保持对获取的值的良好控制(如您的情况)。