我们尝试从内部存储中检索。我们想要在注册后例如“Oscar”然后登录后它应该显示我在主窗体上以“Oscar”身份登录。在主窗体上,它应该声明我已登录为“已登录的任何用户名”。
这是我到目前为止所做的:
String username = txtUsername.getText(); String password = txtPassword.getText();
Storage.getInstance().writeObject("Username", username);
Storage.getInstance().writeObject("Password", password);
Dialog.show("", "You Have Successfully Registered", "Okay Cool", null);
return false;
}
protected boolean 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;
} }
答案 0 :(得分:-1)
我举一个例子:
您有基本的写入和读取方法:
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);
如果您要存储密码,我建议以某种方式加密密码。
当用户登录时,您只需将从文本字段中检索到的信息与存储的信息进行比较。
获取存储的数据:
Map<String, String> userStore = (Map<String, String>) MyStorageEnum.INSTANCE.getData(MyStorageStatic.USER);
然后我将它映射到一个基本的bean对象:
public class User {
private String username;
private String password;
...
如果要进行验证,可以随时查看存储的值是否存在:
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();