按照新的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
。
答案 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}}