如何在android中使用getSharedPreferences

CMA*_*CMA 73 android android-preferences sharedpreferences

我有一个应用程序,我必须在其中实现"登录"活动.我有这些组件:

  1. EditText用户名
  2. EditText密码
  3. 按钮登录
  4. 按钮取消

我希望我的应用程序在用户登录后记住用户的登录详细信息,直到用户按下"注销"按钮.我没有在我的xml中使用首选项.

如何在我的应用程序中使用getSharedPreferences(String name,int mode)?

Dha*_*dra 140

首先使用获取SharedPreferences的实例

SharedPreferences userDetails = context.getSharedPreferences("userdetails", MODE_PRIVATE);
Run Code Online (Sandbox Code Playgroud)

现在将值保存在SharedPreferences中

Editor edit = userDetails.edit();
edit.putString("username", username.getText().toString().trim());
edit.putString("password", password.getText().toString().trim());
edit.apply();
Run Code Online (Sandbox Code Playgroud)

上面的行将为首选项写入用户名和密码

现在要从首选项中检索已保存的值,您可以按照下面的代码行

String userName = userDetails.getString("username", "");
String password = userDetails.getString("password", "");
Run Code Online (Sandbox Code Playgroud)

(注意:不建议在应用程序中保存密码.在保存或跳过保存密码之前,您应该加密密码)

  • 警告 - 除非加密,否则不要存储此类敏感信息的密码. (14认同)

Kar*_*hik 14

//Set Preference
SharedPreferences myPrefs = getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
SharedPreferences.Editor prefsEditor;  
prefsEditor = myPrefs.edit();  
//strVersionName->Any value to be stored  
prefsEditor.putString("STOREDVALUE", strVersionName);  
prefsEditor.commit();

//Get Preferenece  
SharedPreferences myPrefs;    
myPrefs = getSharedPreferences("myPrefs", MODE_WORLD_READABLE);  
String StoredValue=myPrefs.getString("STOREDVALUE", "");
Run Code Online (Sandbox Code Playgroud)

试试这个..

  • MODE_WORLD_READABLE不是存储敏感数据的正确选择,它也在API级别17中被弃用. (11认同)