如何使用editor.putString(sharedpreference)修改我的String.xml文件中的字符串值?

时间:2015-01-05 08:02:51

标签: java android string development-environment

这是我的代码:

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的问题,但没有帮助。

1 个答案:

答案 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());