如何将setMultiChoiceItems()与使用效率arrayadapter的Custom AlertDialog一起使用?

时间:2010-08-05 00:01:21

标签: android alertdialog

我正在编写一个音乐播放器,它使用自定义适配器扩展BaseAdapter(效率适配器),我希望使用AlertDialogsetAdapter()中显示,用户可以点击其中一首歌曲来切换到播放列表中的该位置或检查要从播放列表中删除的歌曲。我尝试使用自定义单击侦听器,以便用户可以长按单击以从列表中删除该项目,但listview只是无法正常工作...它正在删除错误的项目(最后的项目) )即使ArrayList包含正确的播放列表项...(当我从ArrayList删除项目时,我将其传递给调用notifyDataSetChanged的适配器...但是这只是没有像我提到的那样工作。AlertDialog ListView中肯定存在一个错误...因为它没有理由从结尾而不是正确的项目中弹出结果。

所以...我想尝试的下一个方法是使用setMultiChoiceItems()的{​​{1}}方法...但似乎它不适用于自定义适配器..只有简单的数组。我是否必须将AlertDialogAlertDialog方法作为Override方法的子类,或者我是否可以通过setMultiChoiceItems()使其工作?

基本上,我无法弄清楚如何迭代ArrayAdapter创建的列表,或者它是否以某种方式传递该视图。另外,如果我将这些内容添加到行中,我认为我甚至不能听取AlertDialog上的点击。任何帮助将不胜感激。

编辑:在这里提出问题就像魔术一样......我回答了自己的问题......这就是我做到的。我在每个checkboxes添加了一个提示,这是checkbox中项目的位置。然后我使用ArrayList来捕获选择。当您设置提示时,它会将文本添加到OnCheckedChangeListener ...因为checkbox的背景为白色(即使是点击的项目?)我只是将提示文字颜色设置为透明。

AlertDialog

1 个答案:

答案 0 :(得分:3)

参考ThisThis

然后 在setMultiChoiceItems().

中传递对byte []的引用
final boolean[] booleans = {false, true, false, true, false, false, false};

然后检查booleans

setPositiveButton().的值

如果你需要传递这个AlertDialog,那么扩展AlertDialog并创建一个字段布尔值,如1所述。