如何使用 editor.putString(共享首选项)修改我的 String.xml 文件中的字符串值?
how to modify a string value in my String.xml file using editor.putString (sharedpreference)?
这是我的代码:
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 的问题,但没有帮助。
您不能在运行时更改资源文件。字符串硬编码在 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());
这是我的代码:
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 的问题,但没有帮助。
您不能在运行时更改资源文件。字符串硬编码在 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());