gpt4 book ai didi

android - 如何将 setMultiChoiceItems() 与使用效率数组适配器的自定义 AlertDialog 一起使用?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:06:39 26 4
gpt4 key购买 nike

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

所以...我想尝试的下一个方法是使用AlertDialogsetMultiChoiceItems() 方法...但它似乎没有不适用于自定义适配器......只有简单的数组。我是否必须将 AlertDialogOverride 子类化为 setMultiChoiceItems() 方法,或者有没有办法让它与 ArrayAdapter 一起工作?

基本上,我不知道如何迭代 AlertDialog 创建的列表,或者它是否以某种方式通过该 View 。此外,如果我将这些添加到行中,我认为我什至无法听到对 checkboxes 的点击。任何帮助将不胜感激。

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

holder.check.setHintTextColor(Color.TRANSPARENT);
holder.check.setHint(String.valueOf(position));
holder.check.setOnCheckedChangeListener(new OnCheckedChangeListener() {

public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
int position = Integer.parseInt((String) buttonView.getHint());
Log.v("onCheckedChanged", "Checked: "+isChecked+" returned: "+position+" which should be "+getItem(position).name);
}

});

最佳答案

引用ThisThis

然后在 setMultiChoiceItems() 中传递对 byte[] 的引用。

final boolean[] booleans = {false, true, false, true, false, false, false};

然后检查 setPositiveButton() 中 booleans 的值。

如果您需要传递此 AlertDialog,请扩展 AlertDialog 并创建一个 bool 值字段,如 1 中所述。

关于android - 如何将 setMultiChoiceItems() 与使用效率数组适配器的自定义 AlertDialog 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3410810/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com