0

By preferences.xml an users choose a value from 4 by listpref. After first time that android runs preference(), when an users choose again another value by listfref, how execute preference()? Where I put preference() within my code? thanks!

In the MainActivity, I've

@Override
    public void onCreate(Bundle savedInstanceState){ 
      super.onCreate(savedInstanceState);

      preference();

[...] my code: buttons, textview, etc [...]

private void preferences() {

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
    CheckboxPreference = prefs.getBoolean("checkboxPref", true);
    ListPreference = prefs.getString("listpref", "");
4

1 回答 1

1

我想您想知道如何获得最新的首选项,或者如果用户更改了首选项,如何通知您。您的 preferences() 方法查询最新的首选项。通过在 onCreate(...) 方法中调用首选项,您可以在创建相应的活动时检索最新的首选项。在最初检索您的偏好后,我看到了两种获得最新偏好的可能性:

  • 在需要时检索最新的首选项。在您需要最新首选项之前调用您的首选项方法()。例如,如果您需要最新的首选项,请将其放在您的 onUpdate(...) 方法中。
  • 更改首选项时收到通知。使用监听器来监听偏好的变化。SharedPreferences 接口定义了 OnSharedPreferenceChangeListener,您可以实现它并将其传递给您的 SharedPreferences 。

我不得不承认,第一种可能性是一个相当笼统的答案。android 开发者存储选项站点有更多关于使用共享首选项的信息。

于 2012-12-30T11:04:31.273 回答