0
我想SwitchPreference创建程序,setChecked不能正确工作
- 创建
SwitchPreference
编程 - 设置
setChecked(true)
它 - 将其添加到
PreferenceGroup
1和3,做工精细,但在3之后SwitchPreference
未被选中并且点击切换没有作用(不能被“打开”/选中)。
这里是我的PreferenceFragment
:
public class MyPrefFragment extends PreferenceFragment {
@Override
public void onCreatePreferences(final Bundle savedInstanceState, final String rootKey) {
addPreferencesFromResource(R.xml.prefs);
PreferenceGroup preferenceGroup = (PreferenceGroup) findPreference("pref_cat_1");
SwitchPreference switchPreference = new SwitchPreference(getActivity());
switchPreference.setTitle("new");
switchPreference.setChecked(true);
switchPreference.setDefaultValue(true);
switchPreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(final Preference preference, final Object newValue) {
Toast.makeText(getActivity(), newValue.toString(), Toast.LENGTH_SHORT).show();
return false;
}
});
preferenceGroup.addPreference(switchPreference);
}
}
和我PreferenceScreen
:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="cat_one">
<SwitchPreference
android:key="pref_1"
android:defaultValue="false"
android:title="fest"/>
</PreferenceCategory>
<PreferenceCategory
android:key="pref_cat_1"
android:title="category"/>
</PreferenceScreen>
我怎样才能在SwitchPreference正确setChecked(true)
这是程序创建的?
测试项目为on Github。
你是对的,在API 25工作。奇怪的确... – FWeigl
@Ascorbin你有没有最终得到这个工作在较低的API水平? –
@ForrestBice没有。 – FWeigl