Android listview中的多个选定项保持高亮显示

Android listview中的多个选定项保持高亮显示,android,listview,Android,Listview,所以,我所做的是当我点击listview项目时,它变成灰色。但是,当我从listview中选择另一个项目时,先前高亮显示的灰色项目将变为默认项目,新项目将变为灰色 我想要的是让它们都高亮显示,当点击高亮显示的项目时,它们也应该恢复正常 这是我的密码: 我的ListView XML My Color.xml My selector.xml Onclick-Listner 等待帮助和提前感谢 编辑: 这是我的列表适配器 在适配器中保留突出显示项目的列表。@shark非常感谢您的即时回复。你能给我一些

所以,我所做的是当我点击listview项目时,它变成灰色。但是,当我从listview中选择另一个项目时,先前高亮显示的灰色项目将变为默认项目,新项目将变为灰色

我想要的是让它们都高亮显示,当点击高亮显示的项目时,它们也应该恢复正常

这是我的密码:

我的ListView XML

My Color.xml

My selector.xml

Onclick-Listner

等待帮助和提前感谢

编辑: 这是我的列表适配器


在适配器中保留突出显示项目的列表。@shark非常感谢您的即时回复。你能给我一些代码吗?或者更详细一点来实现这一点?您使用的是listSelector,其工作原理仅与此类似。通过将setSelected属性设置为列表单元格布局的background属性,可以实现所需的行为。您必须创建一个本地ArrayList以保持每个单元格的状态,以便在获取时再次设置背景单元格的状态recycled@SagarTrehanThanks非常感谢你的暗示。问题解决了!
    <ListView
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_marginTop="5dp"
    android:id="@+id/listView"
    android:layout_marginRight="10dp"
    android:choiceMode="multipleChoice"
    android:listSelector="@drawable/selector"
    android:layout_alignRight="@+id/group_name"
    android:layout_alignEnd="@+id/group_name" />
    <color name="list_pressed">#ffffff</color>
    <color name="list_default">#d3d3d3</color>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">

<!-- Selected Item -->
<item android:state_selected="true"
    android:drawable="@color/list_pressed" />

<!-- Default Item -->
<item
    android:state_selected="false"
    android:drawable="@color/list_default" />
 </selector>
  listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
    {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id)
        {
            view.setSelected(true);

            GroupList clickedGroup = mygroupList.get(position);
            String message = " you clicked name " + position + " and name is " + clickedGroup.getname();
            Toast.makeText(addgroups.this, message, Toast.LENGTH_LONG).show();

        }
    });
 private class MyListAdapter extends ArrayAdapter<GroupList>
 {
    public MyListAdapter()
    {
        super(addgroups.this, R.layout.grouplist, mygroupList);
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent)
    {

        View itemView = convertView;
        if(itemView == null)
        {
            itemView = getLayoutInflater().inflate(R.layout.grouplist, parent, false);
        }

        //find the contact to work
        GroupList currentgroup =  mygroupList.get(position);

        TextView contactname = (TextView) itemView.findViewById(R.id.group_name);
        contactname.setText(currentgroup.getname());

        ImageView imageView = (ImageView) itemView.findViewById(R.id.add);
        imageView.setImageResource(currentgroup.getimg());

        return  itemView;
        //return super.getView(position, convertView, parent);
    }
}