使用R.something的getSharedPreferences?

Al *_*ath 1 android sharedpreferences

有这些线:

String app_name = "@string/app_name";
SharedPreferences sharedPreferences = getSharedPreferences(app_name, 0);
Run Code Online (Sandbox Code Playgroud)

我得到一个IllegalArgumentException:

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

如果我这样做:

SharedPreferences sharedPreferences = getSharedPreferences("MyAppName", 0);
Run Code Online (Sandbox Code Playgroud)

它运行正常,但如何在不对应用程序名称进行硬编码的情况下使用它?我不能使用R.string.app_name,因为那是一个int.

Sun*_*hra 7

你可以这样做

String app_name = getResources().getString(R.string.app_name);
SharedPreferences sharedPreferences = getSharedPreferences(app_name, 0);
Run Code Online (Sandbox Code Playgroud)