Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Codenameone 从内部存储器中检索_Codenameone - Fatal编程技术网

Codenameone 从内部存储器中检索

Codenameone 从内部存储器中检索,codenameone,Codenameone,我们正在尝试从内部存储器中检索。我们希望在注册后,例如作为奥斯卡,然后在登录后,它应该显示我在主窗体上作为奥斯卡登录。在主窗体上,它应该声明我以任何已登录的用户名登录 这就是我到目前为止所做的: 字符串username=txtUsername.getText; 字符串密码=txtPassword.getText Storage.getInstance().writeObject("Username", username); Storage.getInstance().writeObject("P

我们正在尝试从内部存储器中检索。我们希望在注册后,例如作为奥斯卡,然后在登录后,它应该显示我在主窗体上作为奥斯卡登录。在主窗体上,它应该声明我以任何已登录的用户名登录

这就是我到目前为止所做的:

字符串username=txtUsername.getText; 字符串密码=txtPassword.getText

Storage.getInstance().writeObject("Username", username);
Storage.getInstance().writeObject("Password", password);

Dialog.show("", "You Have Successfully Registered", "Okay Cool", null);
return false;
}

受保护的布尔onLoginLogin{

TextField txtUsername = findTxtUsername();
TextField txtPassword = findTxtPassword();

String username = txtUsername.getText();
String password = txtPassword.getText();

String StorageUsername = (String) Storage.getInstance().readObject("Username");
String StroragePassword = (String) Storage.getInstance().readObject("Password");

if (username != null && username.equals(StorageUsername) && password != null && password.equals(StroragePassword)) {
    Dialog.show("Message", username + "\n" + "Logged In", "Okay", null);
    return false;
} else {
    Dialog.show("Error", "Incorrect Details", "Okay", null);
}
return true;
} }我举个例子:

Session.INSTANCE.getUsername();
您有基本的写入和读取方法:

public boolean putData(String name, Object o) {
    return Storage.getInstance().writeObject(name, o);
}

public Object getData(String name) {
    return Storage.getInstance().readObject(name);
}
然后将信息保存为正常状态:

Map<String, String> userDetails = new HashMap<String, String>();
userDetails.put(UserStatic.PASSWORD, password);
userDetails.put(UserStatic.USERNAME, username);
MyStorageEnum.INSTANCE.putData(MyStorageStatic.USER, userDetails);
如果要进行验证,可以随时查看存储的值是否存在:

public boolean exists(String name) {
    return Storage.getInstance().exists(name);
}
然后执行一个基本的if语句:

if (user.getPassword().equals(password)
            && user.getUsername().equals(username)) {
    //doLogin
}
登录过程的一部分是将用户的用户名存储到会话中,例如:

public enum Session {
INSTANCE;
private String username;
...
然后,您可以使用此会话枚举,以便在希望使用用户名时获取用户名,例如:

Session.INSTANCE.getUsername();

您没有包括显示登录结果的部分。我建议使用调试器并放置断点来查看发生了什么。我还建议为此使用Preferences API,因为它更适合存储简单的值
Session.INSTANCE.getUsername();