你好,我想在列表视图中突出显示多个项目.
所以我试过SngList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);但它没有帮助
我正在使用自定义适配器并扩展BaseAdapter
我使用的是ListView而不是AbsListView
我不想使用CAB,因为它不适合我的应用程序的设计
我也不想使用适配器的getView方法.
我也不想使用复选框,我想我将为每个项目使用一个布尔值,并将其传递给getviews,如果我没有得到一个解决方案,但这似乎不太优雅和整洁.我相信在没有使用适配器的getview()的情况下,有一种合适的内置方式
我试过了:
android:drawSelectorOnTop="false" android:listSelector="@android:color/darker_gray"
在xml中,但它只突出显示其中一个项目,只要我点击另一个项目,它会突出显示它…
那么有什么正确的做法吗?
这是我的应用程序的外观:
解决方法
SngList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
这应该是足够的,但是您必须使用getView来区分所选和未选择的状态.
您可以使用isItemChecked()方法来确定项目被选择的天气,因此您不必为每个项目引入一个布尔变量.
编辑:
这样的事情
@Override public View getView(int position,View convertView,ViewGroup parent) { ListView list = (ListView) parent; if(list.isItemChecked(position)){ //... } else{ //... }