BlackBerry Application中的持久对象

| 问候, 我一直在尝试在BlackBerry Application中使用持久对象。 我正在创建一个登录页面,我可以在其中保存用户名和密码。 以下是我在登录页面中使用的代码
public final class LoginScreen extends MainScreen
{
    private BasicEditField useremailField;
    private PasswordEditField passwordField;
    public HorizontalFieldManager hfm = new HorizontalFieldManager (FIELD_VCENTER);


    public Hashtable persistentHashtable;

    public PersistentObject persistentObject;

    public static final long KEY = 0x9df9f961bc6d6baL;

    public LoginScreen()
    {        
        super( MainScreen.VERTICAL_SCROLL | MainScreen.VERTICAL_SCROLLBAR );
        // Set the displayed title of the screen       
        setTitle(new LabelField(\"Log In\",  LabelField.HCENTER| LabelField.USE_ALL_WIDTH));

        persistentObject = PersistentStore.getPersistentObject(KEY); 

        useremailField = new BasicEditField( \"Email Address:\", \"\", 100, BasicEditField.EDITABLE );
        passwordField = new PasswordEditField( \"Password: \", \"\", 100, PasswordEditField.EDITABLE);

        ButtonField registerField = new ButtonField( \"Register\", ButtonField.CONSUME_CLICK | ButtonField.FIELD_LEFT);
        ButtonField loginField = new ButtonField( \"Login\", ButtonField.CONSUME_CLICK | ButtonField.FIELD_RIGHT);


        add(new LabelField(\"\\n\\n\"));
        add( useremailField );
        add(new LabelField(\"\\n\"));
        add( passwordField);
        add(new LabelField(\"\\n\"));

        hfm.add(registerField);
        hfm.add(loginField);

        setStatus(hfm);

        loginField.setChangeListener( new FieldChangeListener() 
        {
            public void fieldChanged( Field arg0, int arg1 )
            {
                login();
            }
        } );
        persistentHashtable.put(\"UsernameData\", useremailField);
        persistentHashtable.put(\"PasswordData\", passwordField);

        persistentObject.commit();

    }
    private void login() {
        UiApplication ui = UiApplication.getUiApplication();
        ui.pushScreen(new Loggedin());

    }
}
以下是登录页面的代码
public class Loggedin extends MainScreen
{
    private LabelField username;
    private LabelField password;

    public static PersistentObject persistentObject;
    public Loggedin()
    {
        super( MainScreen.VERTICAL_SCROLL | MainScreen.VERTICAL_SCROLLBAR );
        setTitle( \"Registration Form\" );

        if (persistentObject.getContents() == null) {
            persistentHashtable = new Hashtable();
            persistentObject.setContents(persistentHashtable);
        }
        else {
            persistentHashtable = (Hashtable)persistentObject.getContents();
        }

        if (persistentHashtable.containsKey(\"EditData\")) {
            username.setText((String)persistentHashtable.get(\"UsernameData\"));
        }
        if (persistentHashtable.containsKey(\"BoolData\")) {
            password.setText((String)persistentHashtable.get(\"PasswordData\"));
        }
    }

}
我还不能纠正这个问题。我非常感谢我在这方面可以提供的帮助,谢谢。     
已邀请:
        请仔细阅读以下示例。 http://www.blackberryforums.com/developer-forum/13335-data-save-read-example.html 最好创建一个实用程序类以使用持久对象。 如何在持久性存储中保存BlackBerry设置     
        您正在将您的信息放入哈希表= O
 persistentHashtable.put(\"UsernameData\", useremailField);
 persistentHashtable.put(\"PasswordData\", passwordField);
并提交到persistentObject!
 persistentObject.commit();
我认为这就是您不保存值的原因! 请参阅以下示例:
    private static PersistentObject persistentStore;
    private static Object[] data = new Object[1];

//Load Username & Password
    public static void LoadContents(){
        Object[] temp;
        try{
            persistentStore = PersistentStore.getPersistentObject(GI.PERSISTANCEID);
            if(persistentStore.getContents()!=null){
                temp = (Object[]) persistentStore.getContents();
                if(temp!=null){
                    data[0] = temp[0];
                    data[1] = temp[1];                  
                }

                              username.setText((data[0]!=null)?(String)data[0]:\"\");
                              password.setText((data[1]!=null)?(String)data[1]:\"\");

            }else{
                data = new Object[1];
            }
        }catch(NullPointerException e){
            System.out.println(\"CA: S NPE \"+e.getMessage());
        }catch(Exception e){
            System.out.println(\"CA: S E \"+e.getMessage());
        }
    }



       //Save Username & Password
    public static void saveUsername(String version){
data[0] = version;
    persistentStore.setContents(data);
    persistentStore.commit();
    }

    public static void savePassword(String password){
        data[1] = password;
    persistentStore.setContents(data);
    persistentStore.commit();
    }
    

要回复问题请先登录注册