android - 从Activity更改ListPreference值

时间:2013-07-31 19:38:55

标签: android android-preferences

按照新的API,我创建了一个非常简单的PreferenceFragment

  public class PrefsFragment extends PreferenceFragment {

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    addPreferencesFromResource(R.xml.preferences);
}

    }

我在创建的Activity中使用该功能,以便用户更改应用设置:

  public class SetPreferenceActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    getFragmentManager().beginTransaction()
            .replace(android.R.id.content, new PrefsFragment()).commit();

}

   }

现在我需要根据用户的选择更改ListPreference的摘要。没有为findPreference()类定义Activity方法,那么如何才能访问所需的偏好?

很抱歉,如果答案很明显,我对新API并不熟悉,并且在弃用之前总是使用PreferenceActivity

1 个答案:

答案 0 :(得分:1)

您可以在替换片段的语句中执行new PrefsFragment(),而不是PreferenceFragment pFrag = new PrefsFragment(); PrefsFragment pf = (PrefsFragment)pFrag; getFragmentManager().beginTransaction() .replace(android.R.id.content, pFrag).commit();

pf.changeMyPreference();

然后在PreferenceFragment中创建一个可以更改所需内容的公共方法

{{1}}