Android 在ListPreference中自定义“全选”复选框
我已经实现了一个自定义的ListPreference,并成功地加载了一个项目列表以及每个项目的复选框,而没有任何问题。但是,我需要在顶部添加一个“全选”复选框,以便选择所有项目列表。使用我已经实现的以下源代码,我将如何实现这一点 布局:Android 在ListPreference中自定义“全选”复选框,android,listpreference,Android,Listpreference,我已经实现了一个自定义的ListPreference,并成功地加载了一个项目列表以及每个项目的复选框,而没有任何问题。但是,我需要在顶部添加一个“全选”复选框,以便选择所有项目列表。使用我已经实现的以下源代码,我将如何实现这一点 布局: <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="@string/Title_LOCATIONS">
<com.gm.settings.LocationsListPreference
android:defaultValue="null"
android:key="list_locations"
android:title="@string/LocationsListPreference_title"
android:dialogTitle="@string/LocationsListPreference_title"
android:summary="@string/LocationsListPreference_summary"
/>
我已经按照教程实现了这个类,效果很好。但我认为它使用了默认布局,如果我要添加这个添加复选框,我将如何实现这一点
更新:
我想知道如何将“全选”复选框添加到布局中?或者我应该创建一个自定义布局?请提供一个示例代码。因为我现在的感觉,我无法控制这个复选框,你可以做的是在你的首选项类别中添加一个CheckBoxPreference,并附加一个OnPreferenceChangedListener,将所有值设置为选中 一个例子可能看起来有点像这样:
<CheckBoxPreference
android:key="select_all"
android:defaultValue="false"
android:title="Select All"
/>
<com.gm.settings.LocationsListPreference
android:defaultValue="null"
android:key="list_locations"
android:title="@string/LocationsListPreference_title"
android:dialogTitle="@string/LocationsListPreference_title"
android:summary="@string/LocationsListPreference_summary"
/>
希望这有帮助,如果你遇到了障碍,我认为在解释一些概念方面会做得更好一些。祝你好运 您可以做的是在首选项类别中添加一个CheckBoxPreference,并附加一个OnPreferenceChangedListener,用于设置所有要检查的值 一个例子可能看起来有点像这样:
<CheckBoxPreference
android:key="select_all"
android:defaultValue="false"
android:title="Select All"
/>
<com.gm.settings.LocationsListPreference
android:defaultValue="null"
android:key="list_locations"
android:title="@string/LocationsListPreference_title"
android:dialogTitle="@string/LocationsListPreference_title"
android:summary="@string/LocationsListPreference_summary"
/>
希望这有帮助,如果你遇到了障碍,我认为在解释一些概念方面会做得更好一些。祝你好运 发现了一个可能会帮助其他人(如果他们遇到这种实现):
您可以构建自定义ListPreference布局
干杯 发现了一个可能会帮助其他人(如果他们遇到这种实现):
您可以构建自定义ListPreference布局
干杯 我想我会在我的侦听器中检查列表中检查的项目的位置。如果为0,请选中/取消选中所有复选框。如果您知道列表的长度,您可能会在SharedReferences中保存每个列表的状态。因此,当您选中全选时,启动一个将在列表中运行的方法,通过您为首选项指定的唯一键获取每个项,然后将新状态设置为SharedReferences和该项。实际上,我想知道如何从支出的角度添加“全选”复选框?我想我会在侦听器中检查列表中选中的项的位置。如果为0,请选中/取消选中所有复选框。如果您知道列表的长度,您可能会在SharedReferences中保存每个列表的状态。因此,当您选中全选时,启动一个方法,该方法将在列表中运行,通过您给首选项的唯一键获取每个项目,然后将新状态设置到SharedReferences和项目中。实际上,我想知道如何从付款的角度添加全选复选框?非常感谢。但是我想要的是对话框或弹出窗口中包含的复选框,而不是加载项目的位置。例如,当我单击LocationsListReference列表首选项时,复选框应与项目列表一起位于其中。非常感谢。但是我想要的是对话框或弹出窗口中包含的复选框,而不是加载项目的位置。例如,当我单击LocationsListReference列表首选项时,所有选择复选框应与项目列表一起位于其中。
SharedPreferences shareprefs = getPreferenceManager().getSharedPreferences();
LocationsListPreference listPreference = getPreference("list_locations");
CheckBoxPreference selectAll = getPreference("select_all");
selectAll.setOnPreferenceChangeListener(new OnPreferenceChangeListener()
{
public boolean onPreferenceChanged(Preference preference, Object newValue)
{
//Do something with your listPreference and/or your sharedPrefs
}
}