Jap*_*tar 31 android preferenceactivity android-preferences
有没有办法动态显示和隐藏首选项?在我的情况下,我有一个复选框首选项,可以禁用或启用2个首选项组之一("with-"和"without-handicap"组).虽然这将是桌面环境中的理想GUI,但"带障碍"几乎占据整个屏幕,而另一个"无障碍"仅占用屏幕的一小部分.
我不是同时显示两个组,而是一次只显示其中一个组,并在复选框更改时动态显示或隐藏2个组.有没有办法做到这一点?
dha*_*g23 64
来自PreferenceActivity调用
Preference somePreference = findPreference(SOME_PREFERENCE_KEY);
PreferenceScreen preferenceScreen = getPreferenceScreen();
preferenceScreen.removePreference(somePreference);
Run Code Online (Sandbox Code Playgroud)
你以后可以打电话:
preferenceScreen.addPreference(somePreference);
Run Code Online (Sandbox Code Playgroud)
添加时,唯一有点棘手的部分是使订单正确.请查看PreferenceScreen文档,特别是它的基类,PreferenceGroup以获取详细信息.
注意:以上内容仅适用于a的直接孩子PreferenceScreen.如果PreferenceCategory介于两者之间,则需要从其父级中删除首选项PreferenceCategory,而不是PreferenceScreen.首先要确保在XML文件中设置PreferenceCategory了android:key属性.然后:
Preference somePreference = findPreference(SOME_PREFERENCE_KEY);
PreferenceCategory preferenceCategory = (PreferenceCategory) findPreference(SOME_PREFERENCE_CATEGORY_KEY);
preferenceCategory.removePreference(somePreference);
Run Code Online (Sandbox Code Playgroud)
和:
preferenceCategory.addPreference(somePreference);
Run Code Online (Sandbox Code Playgroud)
不完全隐藏/显示,但如果您只想根据另一个首选项禁用/启用首选项,您可以指定android:dependency="preferenceKey"或Preference.setDependency(String)
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference
android:key="pref_sync"
android:title="@string/pref_sync"
android:summary="@string/pref_sync_summ"
android:defaultValue="true" />
<ListPreference
android:dependency="pref_sync"
android:key="pref_syncConnectionType"
android:title="@string/pref_syncConnectionType"
android:dialogTitle="@string/pref_syncConnectionType"
android:entries="@array/pref_syncConnectionTypes_entries"
android:entryValues="@array/pref_syncConnectionTypes_values"
android:defaultValue="@string/pref_syncConnectionTypes_default" />
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28246 次 |
| 最近记录: |