如何将setMultiChoiceItems()与使用效率arrayadapter的Custom AlertDialog一起使用?
我正在写一个音乐播放器,使用扩展BaseAdapter的自定义适配器(效率适配器),我想要使用setAdapter()
在AlertDialog
中显示,其中用户可以点击其中一首歌曲切换到播放列表中的该位置,或者选中要从播放列表中删除的歌曲。我尝试使用自定义点击侦听器,以便用户可以长按一下以从列表中删除项目,但listview
只是不能正常工作......它删除了错误的项目(最后的那些),即使ArrayList
包含正确的播放列表项目...(当我从ArrayList
中删除该项目时,我将它传递给了名为notifyDataSetChanged
的适配器...但是,这只是不起作用,因为我提到了这个。AlertDialog ListView
...因为没有理由从最后弹出结果而不是正确的项目如何将setMultiChoiceItems()与使用效率arrayadapter的Custom AlertDialog一起使用?
所以...我想尝试的下一个方法是使用AlertDialog
的setMultiChoiceItems()
方法...但它似乎不适用于自定义适配器......只有简单的阵列我必须继承AlertDialog
和Override
的setMultiChoiceItems()
方法,或者有什么办法可以使它与ArrayAdapter
一起使用?
基本上,我不知道如何甚至迭代AlertDialog
创建的列表或者它是否以某种方式传递该视图。另外,如果我将这些添加到行中,我认为我甚至不会听到点击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);
}
});
您的问题由您自己回答在您自己的问题上。尝试复制/粘贴文本并正确使用答案机制。 – Pabluez 2011-12-23 00:04:10