[英]Android ListPreference entry text instead of entry value from Activity or Fragment that doesn't extend PreferenceFragment
[英]android - changing ListPreference value from an Activity
遵循新的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
的摘要。 没有为Activity
类定义findPreference()
方法, 那么如何访问所需的首选项?
抱歉,如果答案很明显,我对新API并不真正熟悉,并且在弃用之前总是使用PreferenceActivity
。
可以直接在替换片段的语句中执行new PrefsFragment()
而不是这样做。
PreferenceFragment pFrag = new PrefsFragment();
PrefsFragment pf = (PrefsFragment)pFrag;
getFragmentManager().beginTransaction()
.replace(android.R.id.content, pFrag).commit();
然后在您的PreferenceFragment中创建一个公共方法,您可以更改所需的内容
pf.changeMyPreference();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.