退出应用程序后还原记录存储 [英] Restore recordstore after exit application

查看:117
本文介绍了退出应用程序后还原记录存储的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经编写了一个涉及两个RecordStores recordStore的LWUIT应用程序

I have written a LWUIT application that involves two RecordStores recordStore

recordStore2.

recordStore2 .

两种方法getRecordData用于检索

Two methods method getRecordData for retriving all records of

recordStore,方法getRecordData2用于检索

recordStore, method getRecordData2 for retriving all records of

recordStore2.

recordStore2 .

添加了两个RadioButton rb和rb2称为组的ButtonGroup

two Radiobuttons rb and rb2 are added ButtonGroup called group

名为tf的TextField

A TextField called tf

添加按钮,用于为recordstore或recordstore2添加记录

addition button for adding a record for either recordstore or recordstore2

选择rb或rb2后

必须作为记录写入tf TextField的文本

a text which must written into tf TextField as a record

两个列表mylist和mylist2

Two lists mylist and mylist2

我的列表以显示记录存储的所有记录

mylist to display all records of recordstore

mylist2以显示recordstore2的所有记录

mylist2 to display all records of recordstore2

全部按钮显示记录存储和记录存储2的所有记录

All button to display all records of recordstore and recordstore2

一个简单的问题面对我:-

Simple problem faces me:-

从应用程序退出后,返回到该应用程序并按全部"按钮

After I exit from the application return back to it and press All button

mylist和mylist2为空(不显示任何记录)!

mylist and mylist2 are null (No record displayed)!

任何人都可以感谢我

    import java.util.*;

    import com.sun.lwuit.table.*;

    import com.sun.lwuit.table.DefaultTableModel;

    import javax.microedition.lcdui.*;

    import javax.microedition.midlet.*;

    import javax.microedition.rms.RecordStore;

    import javax.microedition.rms.RecordStoreNotOpenException;

    import javax.microedition.rms .*;

    import com.sun.lwuit.layouts.*;

    import com.sun.lwuit.*;

    import javax.microedition.lcdui.Canvas;


    import com.sun.lwuit.events.*;

    import com.sun.lwuit.plaf.*;

    import javax.microedition.midlet.*;

    import com.sun.lwuit.geom.*;

    import com.sun.lwuit.*;

    import com.sun.lwuit.events.*;

    public class HelloLWUITMidlet3 extends MIDlet implements   Runnable, ActionListener

         {

         private RecordStore recordStore,recordStore2;


           String team,team2;

     public String [] getRecordData()

        {

        String[] str = null;

        int counter = 0;

        try

        {

            RecordEnumeration enumeration = recordStore.enumerateRecords(null, null, false);

            str = new String[recordStore.getNumRecords()];

            while(enumeration.hasNextElement())

                {

                try

                {

                    str[counter] = (new String(enumeration.nextRecord()));

                   counter ++;

                  }

                   catch (Exception e)

                    {

                      e.printStackTrace();

                      }
                            }
                                } 

              catch (Exception e) 

                                   {

                       e.printStackTrace();

                           }


                            return str;
    }

     public String [] getRecordData2()

          {

        String[] str = null;

        int counter = 0;

        try

        {

            RecordEnumeration enumeration = recordStore2.enumerateRecords(null, null, false);

            str = new String[recordStore2.getNumRecords()];

            while(enumeration.hasNextElement())

            {
                try

                {
                    str[counter] = (new String(enumeration.nextRecord()));

                    counter ++;
                }

                catch (Exception e)

                {

                    e.printStackTrace();
                }

            }

        } 

        catch (Exception e) 

                {

            e.printStackTrace();

        }

        return str;

    }

        public void startApp()


        {

          com.sun.lwuit.Display.init(this);


    int bgColor =0x0066CC;

    final ButtonGroup group = new ButtonGroup();

    final  RadioButton rb = new RadioButton("First Team");

    final  RadioButton rb2 = new RadioButton("Second Team");

    group.add(rb);

    group.add(rb2);


    final  f1 g = new f1();

     final com.sun.lwuit.List mylist =  new com.sun.lwuit.List();

    final com.sun.lwuit.List mylist2 =  new com.sun.lwuit.List();


    final form6 my = new form6();

     final  com.sun.lwuit.Form f = new com.sun.lwuit.Form("Football");

       f.getStyle().setBgColor(0X99CCFF);

      BoxLayout boxlayout =new BoxLayout(BoxLayout.X_AXIS);


       final  Button goals = new Button("See goals");

       final  Button button = new Button("Goals Record");

      final    com.sun.lwuit.TextField tf =new com.sun.lwuit.TextField();



     final    com.sun.lwuit.TextField  txtfield5 =new com.sun.lwuit.TextField();


      final    com.sun.lwuit.TextField  txtfield6 =new com.sun.lwuit.TextField();



    final Button addition = new Button("Add Goals");

    final Button All = new Button("All Goals");

    addition.getStyle().setBgColor(0X0066CC);

       com.sun.lwuit.Command back = new com.sun.lwuit.Command("Main_Screen");

    final form6 ff = new form6();

      button.getStyle().setBgColor(0X0066CC);

    goals.getStyle().setBgColor(0X0066CC);

      All.getStyle().setBgColor(0X0066CC);
    Style g_style5 = g.getSelectedStyle() ;

    f.addComponent(button);

    ff.addCommand(back);

     //g.addComponent(main_screen);
    g.addComponent(tf);
    g.addComponent(addition);
     g.addComponent(rb);
     g.addComponent(rb2);


    g.addComponent(All);

     g.getStyle().setBgColor(0X99CCFF);

    g.addCommand(back);

     g.addCommandListener(new ActionListener()

     {


      public void actionPerformed(ActionEvent ae) {



    f.show();
         }



     }
              );


       ff.addCommandListener(new ActionListener()

     {


      public void actionPerformed(ActionEvent ae) {



    f.show();
         }



     }
              );

    ff.getStyle().setBgColor(0X99CCFF);





     try{
             recordStore2 = RecordStore.openRecordStore("My Record Store2", true);
            }
      catch(Exception ex)
         { }
     try
     {
             recordStore = RecordStore.openRecordStore("My Record Store", true);
            }
         catch(Exception ex)
         { }

          All.addActionListener(new ActionListener() {

      public void actionPerformed(ActionEvent ae) {

    try

    {
        com.sun.lwuit.Label l = new com.sun.lwuit.Label("First Team Goals") ;

       ff.addComponent(l);

       String [] record=  getRecordData();

    int j1;

    String valueToBeInserted2="";


    for( j1=0;j1< getRecordData().length;j1++)

      {


    valueToBeInserted2=valueToBeInserted2 + " " + record[j1];


    if(j1==getRecordData().length)

      {

   mylist.addItem(record[j1]);

      }



    }


    ff.addComponent(mylist);

     com.sun.lwuit.Label ll = new com.sun.lwuit.Label("Second Team Goals") ;

      ff.addComponent(ll);


       String [] record2=  getRecordData2();

    int j2;

    String valueToBeInserted="";


  for( j1=0;j1< getRecordData().length;j1++)

  {


valueToBeInserted2=valueToBeInserted2 + " " + record[j1];


if(j1==getRecordData().length)

                {

        mylist.addItem(record[j1]);



             }

             }


    ff.addComponent(mylist2);

          }
    catch(java.lang.IllegalArgumentException e)


         {

         }

    finally

         {
    ff.show();

          }
             }



      }

    );

     button.addActionListener(new ActionListener() {

      public void actionPerformed(ActionEvent ae) {


    g.show();

         }


          }

             );

    goals.addActionListener(new ActionListener()

        {

      public void actionPerformed(ActionEvent ae) {



         }

      }
    );





    final  Thread th = new Thread(this);







    addition.addActionListener(new ActionListener()

    {


      public void actionPerformed(ActionEvent ae) {

    String s =tf.getText();

    if(rb.isSelected())

    {



    if(s!=null && s.length() > 0)

    {

     try{

          String kk =tf.getText();

          mylist.addItem(kk);


                 byte bytestream[] = kk.getBytes()  ;

                 int i = recordStore.addRecord(bytestream, 0, bytestream.length);

         }

     catch(Exception ex) 

                 { }


    Dialog validDialog = new Dialog(" ");


    Style Dialogstyle = validDialog.getSelectedStyle() ;

            validDialog.setScrollable(false);


     validDialog.getDialogStyle().setBgColor(0x0066CC);

            validDialog.setTimeout(1000); 

            TextArea textArea = new TextArea("...."); 


            textArea.setFocusable(false);

           textArea.setText("A new goal has been added"+"" );

            validDialog.addComponent(textArea);


            validDialog.show(0, 10, 10, 10, true);




    }

          }


     else if (rb2.isSelected())
    {


    if(s!=null && s.length() > 0)

    {

     try{

          String kk =tf.getText();


          mylist2.addItem(kk);



           byte bytestream[] = kk.getBytes()  ;

             int i = recordStore2.addRecord(bytestream, 0, bytestream.length);

         }

     catch(Exception ex) { }


    Dialog validDialog = new Dialog(" ");

    Style Dialogstyle = validDialog.getSelectedStyle() ;

            validDialog.setScrollable(false);

     validDialog.getDialogStyle().setBgColor(0x0066CC);

            validDialog.setTimeout(1000); 

            TextArea textArea = new TextArea("....");  

            textArea.setFocusable(false);

           textArea.setText("A new Goal has been added"+"" );

            validDialog.addComponent(textArea);

            validDialog.show(0, 10, 10, 10, true);



    }

          }

    else if((rb.isSelected()==false&&rb.isSelected()==false)||(s==null && s.length()<= 0))

    {

        Dialog validDialo = new Dialog(" ");


            validDialo.setScrollable(false);


    validDialo.getDialogStyle().setBgColor(0x0066CC);


            validDialo.setTimeout(5000);  


            TextArea textArea = new TextArea("....");  


            textArea.setFocusable(false);


           textArea.setText("please enter scorer name and choose his team");


            validDialo.addComponent(textArea);





            validDialo.show(50, 50, 50, 50, true);


            txtfield6.clear();


     }



        }

    }

    );





          f.show();



        }

    public void run ()

          {

       while(true)

         {


            String get[] = getRecordData();


             Dialog validDialog = new Dialog(" ");


             Style Dialogstyle = validDialog.getSelectedStyle() ;


            validDialog.setTimeout(5000);


            validDialog.setScrollable(true);



            validDialog.setLayout(null);


            validDialog.setTimeout(5000);

             TextArea textArea = new TextArea( );


    for(int ii=0;ii<getRecordData().length;ii++ )



    {


            textArea.setColumns(getRecordData().length);


            validDialog.addComponent(textArea);



            validDialog.show(10, 10, 10, 10, true);



               System.out.println(get[ii]+"\n");


             System.out.println(textArea.getColumns()+"\n");


                      }


                            }


                                }
        public void pauseApp()


                          {

                           }

        public void destroyApp(boolean unconditional)

                                           { 

                                           }

        public void actionPerformed(ActionEvent ae) 

          {


           notifyDestroyed();

           }

         public  class f1 extends   com.sun.lwuit.Form


      {

            com.sun.lwuit.TextField tf;


               public f1()


              {


      com.sun.lwuit.Form f1 = new com.sun.lwuit.Form("Goals Records");


        tf =new com.sun.lwuit.TextField();


              }






        }



    public  class form6   extends   com.sun.lwuit.Form


      {

    com.sun.lwuit.TextField txtfield3;

    com.sun.lwuit.TextField tf3;


       public form6()

              {

      com.sun.lwuit.Form mylist = new com.sun.lwuit.Form("Goals List");


              }




    }

}

推荐答案

您应该首先打开recordStore,然后再读取其内容. 在getRecordData()方法中,您应该首先打开记录存储,然后使用

you should first open recordStore and than read it's contents. in getRecordData() method you should first open record store and than use

RecordEnumeration enumeration = recordStore.enumerateRecords(null, null, false);

修改方法:

public String [] getRecordData()

    {

    String[] str = null;

    int counter = 0;

    try

    {
        recordStore = RecordStore.openRecordStore("NameOfrecordStore", true);

        RecordEnumeration enumeration = recordStore.enumerateRecords(null, null, false);

        str = new String[recordStore.getNumRecords()];

        while(enumeration.hasNextElement()){

            try{

                str[counter] = (new String(enumeration.nextRecord()));
                counter ++;

            }catch (Exception e){
                  e.printStackTrace();
            }
        }
     } catch (Exception e){
            e.printStackTrace();
     }
     return str;
}

在getRecordData2()中做同样的事情 添加此代码

do same thing in getRecordData2() add this code

recordStore2 = RecordStore.openRecordStore("NameOfrecordStore2", true);

之前

RecordEnumeration enumeration = recordStore2.enumerateRecords(null, null, false);

记住,当您使用rms首次打开记录存储时,要比使用它(读取,更改,删除...).

remember when you use rms first open record store and than use it(read, change, delete,...).

//问题的新答案 //将此代码替换为您的相应代码;

// new answer to question //replace this code with your according code;

//先替换掉

addition.addActionListener(new ActionListener(){
       public void actionPerformed(ActionEvent ae) {
           String s =tf.getText();
           if(rb.isSelected()){
               if(s!=null && s.length() > 0){
                   try{
                       byte bytestream[] = s.getBytes()  ;
                       recordStore = RecordStore.openRecordStore("RecordStore1", true);
                       int i = recordStore.addRecord(bytestream, 0, bytestream.length);
                   }catch(Exception ex) {   
                       ex.toString();
                   }
               }
            }else if (rb2.isSelected()){
                if(s!=null && s.length() > 0){
                    try{
                        byte bytestream[] = s.getBytes()  ;
                        recordStore2 = RecordStore.openRecordStore("RecordStore2", true);
                        int i = recordStore2.addRecord(bytestream, 0, bytestream.length);
                    }catch(Exception ex) { }
                }

            }
        .....              
       }
   });

//秒

  All.addActionListener(new ActionListener() {            
         public void actionPerformed(ActionEvent ae) {
             ff.removeAll();
            try{
                com.sun.lwuit.Label l = new com.sun.lwuit.Label("First Team Goals") ;
                 ff.addComponent(l);
                 String [] record=  getRecordData();
                 List mylist = new List(new DefaultListModel(record));
                 ff.addComponent(mylist);

                 com.sun.lwuit.Label ll = new com.sun.lwuit.Label("Second Team Goals") ;
                 ff.addComponent(ll);
                 String [] record2=  getRecordData2();
                 List mylist2 =new List(new DefaultListModel(record2));
                 ff.addComponent(mylist2);
            }catch(java.lang.IllegalArgumentException e){}
            ff.show();                
         }
    });

它运作良好,完美!!

its work well, its perfect!!.

这篇关于退出应用程序后还原记录存储的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆