【问题标题】:How to flush retrieved database values from form如何从表单中刷新检索到的数据库值
【发布时间】:2012-04-24 08:42:59
【问题描述】:

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

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

                  }

有谁知道这个。请指教。

【问题讨论】:

  • 听起来你需要阅读更多关于 BB 开发、UI 领域、UI 周期的信息。还要查看代码示例,我建议您阅读有关“干净代码”技术的更多信息
  • 我确实是 bb 开发的新手。如果你能提供合适的链接来帮助你的建议,我将不胜感激。
  • 有谁知道解决上面的疑惑。PLz帮助大家

标签: sqlite blackberry


【解决方案1】:

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

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

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

【讨论】:

  • 非常感谢。我从来没有使用禁用按钮。我现在在我的搜索字段更改实现中使用了保存按钮字段更改事件。它就像一个魅力。再次感谢。
猜你喜欢
  • 2012-06-05
  • 2022-01-18
  • 2017-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-30
  • 2018-11-20
  • 2011-11-01
相关资源
最近更新 更多