Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从ListView中单击图像后删除项目(片段,BaseAdapter)_Android - Fatal编程技术网

Android 从ListView中单击图像后删除项目(片段,BaseAdapter)

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 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


   }
}