这是我的代码:
SharedPreferences prefs= PreferenceManager.getDefaultSharedPreferences(getBaseContext());
Editor ed=prefs.edit();
ed.putString(getString(R.string.firsttemplate), "String Modified");
ed.apply();
ed.commit();
Toast.makeText(getBaseContext(), getString(R.string.firsttemplate), Toast.LENGTH_SHORT).show();
此Toast显示保存在我的字符串值
中的上一个文本我也看到过有关SharedPreferences的问题,但没有帮助。
答案 0 :(得分:1)
您无法在运行时更改资源文件。字符串在string.xml文件中是硬编码的,因此在运行时不能更改。而不是尝试编辑strings.xml文件,只需使用SharedPreferences存储用户的首选项,如果这是你正在尝试的。
您可以使用此代码作为从SharedPreferences保存和恢复值的基础。
public class Account {
private static Account account;
private static final String ACCESS_TOKEN = "access_token";
public String accessToken;
public static Account getInstance() {
if (account == null)
account = new Account();
return account;
}
public void save(Context context) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
Editor editor = prefs.edit();
editor.putString(ACCESS_TOKEN, accessToken);
editor.commit();
}
public void restore(Context context) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
accessToken = prefs.getString(ACCESS_TOKEN, accessToken);
}
private Account() {
}
}
现在您可以像这样访问您的值。还原:
Account account = Account.getInstance();
account.restore(getActivity());
Toast.makeText(getActivity(), account.accessToken, Toast.LENGTH_SHORT).show();
保存:
Account account = Account.getInstance();
account.accessToken = "newString";
account.save(getActivity());