Greetings,BlackBerry應用程序中的持久對象
我一直在嘗試在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"));
}
}
}
我還沒有能夠糾正問題的登錄頁面的代碼。我非常感謝我在這方面的幫助,謝謝。