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