1

使用这些行:

String app_name = "@string/app_name";
SharedPreferences sharedPreferences = getSharedPreferences(app_name, 0);

我得到一个IllegalArgumentException

文件 @string/app_name.xml 包含路径分隔符

如果我这样做:

SharedPreferences sharedPreferences = getSharedPreferences("MyAppName", 0);

它工作正常,但如何在不硬编码应用程序名称的情况下使用它?我不能使用 R.string.app_name 因为那是一个整数。

4

2 回答 2

7

你可以这样做

String app_name = getResources().getString(R.string.app_name);
SharedPreferences sharedPreferences = getSharedPreferences(app_name, 0);
于 2013-08-26T14:01:12.520 回答
1

你不能strings.xml像这样String app_name = "@string/app_name";在你的java Code

获取字符串 Fromstrings.xmljava Code

利用getResources().getString(R.string.yourStringName);

所以将您的代码更改为

String app_name = getResources().getString(R.string.app_name);
于 2013-08-26T14:02:09.740 回答