Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用R.something获取SharedReferences?_Android_Sharedpreferences - Fatal编程技术网

Android 使用R.something获取SharedReferences?

Android 使用R.something获取SharedReferences?,android,sharedpreferences,Android,Sharedpreferences,以下几行: String app_name = "@string/app_name"; SharedPreferences sharedPreferences = getSharedPreferences(app_name, 0); 我得到一个非法argumentException: 文件@string/app_name.xml包含路径分隔符 如果我这样做: SharedPreferences sharedPreferences = getSharedPreferences("MyAppNam

以下几行:

String app_name = "@string/app_name";
SharedPreferences sharedPreferences = getSharedPreferences(app_name, 0);
我得到一个
非法argumentException

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

如果我这样做:

SharedPreferences sharedPreferences = getSharedPreferences("MyAppName", 0);
它工作得很好,但是我如何在不硬编码应用程序名称的情况下使用它?
我不能使用R.string.app\u名称,因为这是一个int。

您可以这样做

String app_name = getResources().getString(R.string.app_name);
SharedPreferences sharedPreferences = getSharedPreferences(app_name, 0);

你可以这样做

String app_name = getResources().getString(R.string.app_name);
SharedPreferences sharedPreferences = getSharedPreferences(app_name, 0);

你不能像这样从
strings.xml
字符串app_name=“@String/app_name”在您的
java代码中

strings.xml
java代码

使用
getResources().getString(R.string.yourStringName)

因此将代码更改为

String app_name = getResources().getString(R.string.app_name);

你不能像这样从
strings.xml
字符串app_name=“@String/app_name”在您的
java代码中

strings.xml
java代码

使用
getResources().getString(R.string.yourStringName)

因此将代码更改为

String app_name = getResources().getString(R.string.app_name);