Android 从ListView中单击图像后删除项目(片段,BaseAdapter)
我有个问题。单击ListView上的图像后可以删除哪些项目?列表中的每个项目都有一个要删除的图标 片段的一部分:Android 从ListView中单击图像后删除项目(片段,BaseAdapter),android,Android,我有个问题。单击ListView上的图像后可以删除哪些项目?列表中的每个项目都有一个要删除的图标 片段的一部分: ListView listView; ..... View view = inflater.inflate(R.layout.basic_list, container, false); listView = (ListView) view.findViewById(R.id.list_view); ..... listView.setAdapter(adapter); 基本清单的
ListView listView;
.....
View view = inflater.inflate(R.layout.basic_list, container, false);
listView = (ListView) view.findViewById(R.id.list_view);
.....
listView.setAdapter(adapter);
基本清单的一部分:
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
列表的一部分\u adapter.xml
<ImageView
android:id="@+id/icon"
android:layout_alignParentLeft="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/box_icon"/>
您应该从数据列表中删除单击的项,该列表应该位于适配器类中 您可能没有发布适配器类的全部代码,但您的适配器可能是基于位置的listview中显示的数据集列表 在adapters getView方法中,您有一个参数“position”,您可以使用它从数据列表中删除该位置的项,然后只需调用notifyDataSetChanged即可更新ListView。下面是一个示例
holder.removeIcon.setTag(position);//save index
holder.removeIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Integer position= (Integer) view.getTag(); //get index
dataList.remove(position); //remove the item from data source
notifyDataSetChanged(); //notify to refresh
}
});
使用这些代码
holder.removeIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ARRAYLIST.remove(position);///position of the getview method
notifyDataSetChanged(); //notify to refresh
}
}
好的,但是什么是“数据列表”?我的listView在片段中,而不是在适配器中。datalist表示为listView设置适配器的项目列表。这是一个示例。这里是指您的数据源,您应该从数据源中删除该项。好的,但我在适配器中没有arraylist。列表仅在片段中。您在片段中调用BaseApater类时已传递了arraylist…请检查一次。。。像ClassAdapter adpter=newclassadapter(ARRAYLIST,getActivity());拉文德拉·库什瓦瓦-好的,我明白,但我无法在片段中找到任何数组列表。我只是在片段中有ListView。我在片段框[]框中有数组;我将数据从互联网下载到这个数组中,并调用fragmentadapter.setData(box);listView.setAdapter(适配器);|setData是我在ClassAdapter中的方法:public void setData(Box[]data){this.data=data;}Use还可以使用Arraylist代替您的Box[](数组)并执行类似于我的代码中的操作。。
holder.removeIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ARRAYLIST.remove(position);///position of the getview method
notifyDataSetChanged(); //notify to refresh
}
}