android中的共享首选项

时间:2011-05-16 05:00:20

标签: android

我是android开发的新手。

我有一个活动,其中我正在使用用户名和密码。我将这些值传递给Web服务,该服务返回一个键作为响应。我在我的活动中有一个切换按钮。现在,如果用户检查切换按钮,这意味着他希望保持登录状态,并且下次登录时应将用户重定向到下一个活动。

如果选中了切换按钮,我将用户名,密码和密钥存储在共享首选项中。  但我下次没有得到如何检索这些细节(即用户下次登录时)

6 个答案:

答案 0 :(得分:6)

userDetails = this.getSharedPreferences("userdetails", MODE_PRIVATE);
Editor edit = userDetails.edit();
edit.clear();
edit.putString("username", txtUname.getText().toString().trim());
edit.putString("password", txtPass.getText().toString().trim());
edit.commit();
Toast.makeText(this, "Login details are saved..", 3000).show();

这样你可以获取偏好

String Uname = userDetails.getString("username", "");
String pass = userDetails.getString("password", "");

并以这种方式检查登录

if(Uname=="" && pass =="")
//Go to login
else
//Go to Next Activity

试试这个

祝你好运

答案 1 :(得分:2)

尝试使用sharedPreferences中的商店值..

SharedPreferences prefs = getSharedPreferences("Share", Context.MODE_PRIVATE );
Editor editor = prefs.edit();
editor.putInt("Value", 1 );
editor.commit();

获取价值

prefs.getInt("Value",0);

/////////////////////////////////////////

String Uname = userDetails.getString("username", "");
String pass = userDetails.getString("password", "");

if(Uname=="" && pass =="")
//Go to login
else
//Go to Next Activity

答案 2 :(得分:0)

然后他可以加密密码并将其存储在共享偏好中,只要他需要密码,他就可以从共享偏好中获取加密密码并解密。

答案 3 :(得分:0)

避免存储用户密码。 对于每个用户,请考虑存储:

the user id
a random seed unique to this user 
a hash of the seeded password. 

用户需要重新输入密码,然后您可以将存储的种子添加到输入的密码中,并将哈希算法X次应用于种子密码。然后将哈希值与存储的哈希值进行比较。

答案 4 :(得分:0)

基于Checkbox在用户检查/取消选中时保持登录时添加sharedPreferences布尔值。然后当您调用onCreate of Login活动时,如果布尔值为true,则需要检查并调用下一个活动。

答案 5 :(得分:0)

尝试使用此https://prashantsolanki3.github.io/Secure-Pref-Manager/安全轻松地保存和检索共享首选项。

密钥和值会自动加密。

保存:

SecurePrefManager.with(this)
            .set("user_name")
            .value("LoremIpsum")
            .go();

检索:

String userName = SecurePrefManager.with(this)
            .get("user_name")
            .defaultValue("unknown")
            .go();

希望这有帮助!