【发布时间】:2015-07-19 19:00:11
【问题描述】:
我需要使用 SharedPreference 在我的应用程序中保存登录名、密码和其他字符串,但我不想使用默认布局的首选项。
我已经阅读了 SharedPref 的文档:http://developer.android.com/guide/topics/ui/settings.html#ReadingPrefs
但是.. 嗯。 我创建了一个名为preferences_dashboard 的类。 在此类中,如果选中了复选框,则备份登录等,如果未选中复选框,则删除备份。
这是我的代码:
public void saveID(View v) {
// strMessage is the message with appears when clicking on Checkbox
String strMessage = "";
CheckBox chkBoxSaveID;
chkBoxSaveID = (CheckBox) findViewById(R.id.preferencecheckBoxSaveID);
boolean chkBoxSaveIDState = chkBoxSaveID.isChecked();
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit(); // Put the values from the UI
if (chkBoxSaveID.isChecked()) {
// Backup LOGIN
String userLogin ="Administrator2";
String userPassword = "password2";
String userDomain = "12";
editor.putString("KEY_USER_LOGIN", userLogin); // Storing string
editor.putString("KEY_USER_PASSWORD", userPassword); // Storing string
editor.putString("KEY_USER_DOMAIN", userDomain); // Storing string
editor.putBoolean("stateChkBoxMemorizeID", chkBoxSaveIDState); // value to store
editor.commit(); // commit changes
strMessage += "ID memorized" + "KEY_USER_DOMAIN" + userPassword + userDomain;
showTextNotification(strMessage);
} else {
// No backup LOGIN
editor.remove("KEY_USER_LOGIN"); // will delete key name
editor.remove("KEY_USER_PASSWORD");
editor.remove("KEY_USER_DOMAIN");
editor.putBoolean("stateChkBoxMemorizeID", chkBoxSaveIDState); // value to store
editor.commit(); // commit changes
strMessage += "Login is not memorized ";
showTextNotification(strMessage);
}
} // end saveID
我想我不太了解如何使用 SharedPreferences。 字符串登录/通过/域是固定的测试。之后,我将在其他活动中恢复变量。
我的问题:
- 这些变量将备份到哪里?在 data/date/nameappli/xml 中生成?还是在 defaultSharedPreference 中?
- 我错过了什么? :(
感谢您的帮助。
【问题讨论】:
标签: android xml sharedpreferences