Android 访问联系人后如何在列表视图中选择多个值

Android 访问联系人后如何在列表视图中选择多个值,android,Android,公共视图单击(AdapterView AdapterView,视图视图,int j,long l){ 您可以获取项目的数组列表和onItemClick事件,您可以将所选项目添加到arraylist中 arraylist.add(selectedItem) 我正在使用这段代码。要在此代码中选择项目,用户必须先长按以选择第一个项目,然后他可以通过短按选择/取消选择更多项目 private SparseBooleanArray hasClicked = new SparseBooleanArray()

公共视图单击(AdapterView AdapterView,视图视图,int j,long l){


您可以获取项目的数组列表和
onItemClick
事件,您可以将所选项目添加到arraylist中

arraylist.add(selectedItem)


我正在使用这段代码。要在此代码中选择项目,用户必须先长按以选择第一个项目,然后他可以通过短按选择/取消选择更多项目

private SparseBooleanArray hasClicked = new SparseBooleanArray();

ContactList.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

@Override

public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {

selectedItems.add(adapter.getItem(position));

hasClicked.put(position, false);

adapter.notifyDataSetChanged();

marked++;

ContactList.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

if (hasClicked.get(position, true)) {

selectedItems.add(adapter.getItem(position));

adapter.notifyDataSetChanged();

hasClicked.put(position, false);

marked++;

} else {

selectedItems.remove(adapter.getItem(position));

adapter.notifyDataSetChanged();

hasClicked.put(position, true);

marked--;

}

adapter.notifyDataSetChanged();

}

});

if (marked > 0) {

//gruppe erstellen

} else {

onClickListener();

selectedItems.clear();

adapter.notifyDataSetChanged();

}

return true;

}

});
private SparseBooleanArray hasClicked=new SparseBooleanArray();
ContactList.setOnItemLongClickListener(新的AdapterView.OnItemLongClickListener(){
@凌驾
公共布尔值长单击(AdapterView父项、视图、整型位置、长id){
选择editems.add(adapter.getItem(position));
hasClicked.put(位置,false);
adapter.notifyDataSetChanged();
标记++;
ContactList.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
if(hasClicked.get(位置,true)){
选择editems.add(adapter.getItem(position));
adapter.notifyDataSetChanged();
hasClicked.put(位置,false);
标记++;
}否则{
选择editems.remove(adapter.getItem(位置));
adapter.notifyDataSetChanged();
hasClicked.put(位置,true);
标记--;
}
adapter.notifyDataSetChanged();
}
});
如果(标记为>0){
//gruppe erstellen
}否则{
onClickListener();
选择editems.clear();
adapter.notifyDataSetChanged();
}
返回true;
}
});

您可以在Arraylist中添加所选项目的位置,但当项目已被选中时,您可以通过将其从Arraylist中删除来取消选中该项目

ArrayList<Integer> itemList=new ArrayList<>();     
public void onItemClick(AdapterView adapterView, View view, int j, long l) {
    if(itemList.contains(j)) {
        itemList.remove(j);
    }
    else {
        itemList.add(j);
    }
}
arraylistitemlist=newarraylist();
公共视图单击(AdapterView AdapterView,视图视图,int j,long l){
if(itemList.contains(j)){
项目列表。删除(j);
}
否则{
项目清单。添加(j);
}
}

您的问题不清楚,请添加一些有关该问题的信息,您尝试做什么,以及到目前为止您尝试了什么
ArrayList<Integer> itemList=new ArrayList<>();     
public void onItemClick(AdapterView adapterView, View view, int j, long l) {
    if(itemList.contains(j)) {
        itemList.remove(j);
    }
    else {
        itemList.add(j);
    }
}