具有多项活动的Android共享首选项

kab*_*178 14 java android sharedpreferences android-activity

  1. 如何检索已从先前活动保存的共享首选项?
  2. 我是否需要启用文件写入或其他一些清单修改?

yug*_*oid 37

您不需要任何特殊的清单修改来实现这一目标.

假设您已经保存了偏好设置,您可以随时阅读这些偏好设置.

  1. 写在共享首选项文件:

      SharedPreferences prefs = getSharedPreferences("your_file_name", MODE_PRIVATE);
      SharedPreferences.Editor editor = prefs.edit();
      editor.putString("yourStringName", "this_is_the_saved_value");
      editor.commit(); // This line is IMPORTANT. If you miss this one its not gonna work!
    
    Run Code Online (Sandbox Code Playgroud)
  2. 从共享首选项文件中读取:

      SharedPreferences prefs = getSharedPreferences("your_file_name",
      MODE_PRIVATE); String string = prefs.getString("yourStringName",
      "default_value_here_if_string_is_missing");
    
    Run Code Online (Sandbox Code Playgroud)

您可以使用默认文件来保存/读取您的首选项.只需用以下内容替换上面两个代码段的第一行:SharedPreferences prefs = getDefaultSharedPreferences(getApplicationContext());

而已!在此处查看Android开发者专用页面.

希望它有用.让我知道.


wsa*_*lle 8

除了确保两个活动都写入/读取同一文件之外,您不需要做任何特殊操作.在引擎盖下,首选项只是存储为XML文件.

所以,你的选择是:

1)使用两个活动中的PreferenceManager.getDefaultSharedPreferences()来写入默认文件.

2)使用Context.getSharedPreferences()指定自定义文件名,并使用两个活动中的相同名称.

  • 这取决于您想要传递多少变量,以及您希望它们是永久性的.如果你有超过20个永久变量要传递,我会考虑一个sqlite数据库.如果您只是在活动之间传递几个变量,那么如果您不介意在退出应用程序后清除变量,则使用意图是更好的选择. (2认同)