我写一个使用扩展BaseAdapter(效率适配器),我想在显示自定义适配器音乐播放器AlertDialog使用setAdapter(),用户可以在无论是在歌曲之一单击切换到播放列表中的那个位置或检查的歌曲从删除播放列表.我尝试使用自定义单击侦听器,以便用户可以长时间单击以从列表中删除该项目但是listview正常工作不正确...它正在删除错误的项目(最后的项目),即使ArrayList包含正确的播放列表项目...(当我从中删除项目时ArrayList,我将其传递给调用的适配器notifyDataSetChanged...但是我刚才提到的那个工作没有用.确实有一个错误AlertDialog ListView...因为它没有理由从结束而不是正确的项目中弹出结果.
所以...我想尝试的下一个方法是使用...的setMultiChoiceItems()方法,AlertDialog但它似乎不适用于自定义适配器...只有简单的数组.请问我要继承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);
}
});
Run Code Online (Sandbox Code Playgroud) 如果StackOverflow有一个我们可以发布像我这样的教程的部分会很好,这样我就可以回答几百个问题.请参阅...每天我都会阅读有关如何在活动之间传递复杂对象的问题,如何保存状态以便您的应用可以在方向更改后恢复,如何在数据更改时更新列表视图等等.
这是我在博客上发布的教程系列的第二部分...我希望你真正阅读它...因为我没有看到任何类似的例子......它改变了我对开发的看法适用于Android全面.问题是......这样的发展是否有下行或负面影响?
请仔细阅读这两个教程......我将在这里回答任何有关它的问题,我可以......我真的想知道你对此的看法以及是否可以为你解决问题.
对主持人的说明:我的博客上没有任何类型的广告..所以不要只关闭这个,因为你认为我在某种程度上是垃圾邮件...我不会在这里复制我的帖子.并且...我真的想知道这种方法是否存在缺陷.