保存用户和密码Android



这是我的逻辑:

我有一个用户:

user = new User(newUsername, newPassword);

生成用户的随机id +密码。

uniqueName = UUID.randomUUID().toString();
uniquePassword = UUID.randomUUID().toString();

通过对话框,用户可以更改密码,操作步骤如下:

newUsername = userField.getText().toString();
newPassword = passwordField.getText().toString();

我把它传递给模型:

user.setUsername(newUsername);
user.setPassword(newPassword);

模型如下:

public User(String username,String password){
    this.username = username;
    this.password = password;
}
public String getUsername(){
    return username;
}
public void setUsername(String username){
    this.username = username;
}
public String getPassword(){
    return password;
}
public void setPassword(String password){
    this.password = password;
}

然而,当我关闭应用程序或更改活动的密码和用户不保存,任何提示如何保存用户和密码,以便如果用户离开活动,它保存密码/id?

我这样添加了SharedPreferences:

private void savePreferences(){
    SharedPreferences settings  = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = settings.edit();
    editor.putString(PREF_UNAME, newUsername);
    editor.putString(PREF_PASSWORD, newPassword);
    editor.commit();
}
private void loadPreferences(){
    SharedPreferences settings = getSharedPreferences(PREFS_NAME,
            Context.MODE_PRIVATE);
    mUsername.setText(settings.getString(PREF_UNAME, newUsername));
    mPassword.setText(settings.getString(PREF_PASSWORD, newPassword));
}

我调用onPause()中的savePreferences和onResume()中的loadPreferences。然而,当我关闭活动两次,并再次打开它的用户名和id我存储的都不见了。还有什么提示吗?

您没有获得价值的原因是您的数据没有存储。一旦应用程序关闭,您的静态数据将丢失。您需要将数据保存在Database或SharedPreference中。

你的模型只是一个临时保存数据的静态方法。

因为您将用户保存在内存中,并且需要将其保存在SharedPreference中。

这取决于它有多少数据(除了用户id和密码)

正如@Gosu所说,如果你有小数据使用SharedPrefereces或如果有更多的记录和表,那么使用SQLite

官方网站:Android存储选项

如果约束只有用户名和密码(不是用户角色)&那么不需要太多工作的最好方法是SharedPreferences。否则,您需要一个数据库,如sqlite来维护这些信息

您可以使用Saved Preference来保存用户。我们可以使用gson.jar

 SharedPreferences  mPrefs = getPreferences(MODE_PRIVATE);

保存

 Editor prefsEditor = mPrefs.edit();
 Gson gson = new Gson();
 String json = gson.toJson("User");
 prefsEditor.putString("MyObject", json);
 prefsEditor.commit();

Gson gson = new Gson();
String json = mPrefs.getString("User", "");
MyObject obj = gson.fromJson(json, User.class);

相关内容

  • 没有找到相关文章

最新更新