我有一个应用程序需要实现“登录”功能。 我有以下组件:
- EditText用户名
- EditText密码
- 按钮“登录”
- 按钮“取消”
我希望一旦用户登录,我的应用程序可以记住用户的登录详细信息,直到用户按下“注销”按钮。 我没有在我的xml中使用首选项。
如何在我的应用程序中使getSharedPreferences(String name,int mode)正常工作?
我有一个应用程序需要实现“登录”功能。 我有以下组件:
我希望一旦用户登录,我的应用程序可以记住用户的登录详细信息,直到用户按下“注销”按钮。 我没有在我的xml中使用首选项。
如何在我的应用程序中使getSharedPreferences(String name,int mode)正常工作?
首先使用以下代码获取SharedPreferences实例:
SharedPreferences userDetails = context.getSharedPreferences("userdetails", MODE_PRIVATE);
现在需要将这些值保存到SharedPreferences中。
Editor edit = userDetails.edit();
edit.putString("username", username.getText().toString().trim());
edit.putString("password", password.getText().toString().trim());
edit.apply();
上述代码将会把用户名和密码写入到偏好设置(preference)中
现在,如果你要检索保存在偏好设置中的值,你可以使用以下代码:
String userName = userDetails.getString("username", "");
String password = userDetails.getString("password", "");
(注:不建议在应用程序中保存密码。您应该在保存密码之前加密密码或跳过保存密码)
//Set Preference
SharedPreferences myPrefs = getSharedPreferences("myPrefs", MODE_PRIVATE);
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_PRIVATE);
String StoredValue=myPrefs.getString("STOREDVALUE", "");
试试这个...
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
PreferenceManager现已被弃用,重构为:
val sharedPreferences = context.getSharedPreferences(context.packageName + "_preferences", Context.MODE_PRIVATE)
getDefaultSharedPreferences()
仍然适用于 SettingsActivity.java
和链接的 root_preferences.xml
文件,用户可以在其中设置他们的偏好设置。 - Bokili Production在阅读了很多资料后,只有以下方法有效: 在类中设置共享偏好:
SharedPreferences userDetails = getApplicationContext().getSharedPreferences("test", MODE_PRIVATE);
SharedPreferences.Editor edit = userDetails.edit();
edit.clear();
edit.putString("test1", "1");
edit.putString("test2", "2");
edit.commit();
在AlarmReciever中:
SharedPreferences userDetails = context.getSharedPreferences("test", Context.MODE_PRIVATE);
String test1 = userDetails.getString("test1", "");
String test2 = userDetails.getString("test2", "");