0

我编写了一个 LWUIT 应用程序,其中涉及两个 RecordStores recordStore

记录存储 2 。

两种方法 getRecordData 用于检索所有记录

recordStore,方法 getRecordData2 用于检索所有记录

记录存储 2 。

添加了两个 Radiobuttons rb 和 rb2 ButtonGroup 称为 group

一个名为 tf 的 TextField

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

选择 rb 或 rb2 后

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

两个列表 mylist 和 mylist2

mylist 显示记录存储的所有记录

mylist2 显示 recordstore2 的所有记录

全部按钮显示recordstore和recordstore2的所有记录

简单的问题摆在我面前:-

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

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

谢天谢地,谁能帮助我

    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");


              }




    }

}
4

1 回答 1

1

您应该首先打开recordStore,然后阅读它的内容。在 getRecordData() 方法中,您应该首先打开记录存储然后使用

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() 中做同样的事情添加此代码

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

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

请记住,当您使用 rms 第一次打开记录存储并使用它时(读取、更改、删​​除......)。

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

//首先替换这个

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

它的工作很好,它的完美!

于 2013-08-20T20:15:18.663 回答