ListView可编辑选择与删除条目怎么实现

ListView可编辑选择与删除条目怎么实现

这篇文章主要讲解了“ListView可编辑选择与删除条目怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ListView可编辑选择与删除条目怎么实现”吧!

首先,我们来看一下效果演示图:

接下来,我们讲解一下控件功能及其使用:

1.功能

封装列表控件,使其条目具有可编辑选择、删除等功能。

2.Android Studio使用方法

dependencies{compile'com.wkp:EditListView:1.0.2'//AndroidStudio3.0+可用以下方式//implementation'com.wkp:EditListView:1.0.2'}

3.使用详解

属性讲解

<!--是否开启测量高度--><attrname="wkp_measureHeight"format="boolean"/><!--未选中状态时图标--><attrname="wkp_uncheckedImg"format="reference"/><!--选中状态时图标--><attrname="wkp_checkedImg"format="reference"/><!--编辑/退出编辑动画时长(默认200)--><attrname="wkp_editAnimDuration"format="integer"/>

布局示例

<!--activity_main.xml--><?xmlversion="1.0"encoding="utf-8"?><ScrollViewxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/sv"android:layout_width="match_parent"android:layout_height="wrap_content"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:id="@+id/delete"android:onClick="delete"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center"android:padding="@dimen/len_5dp"android:text="删除"/><TextViewandroid:id="@+id/edit"android:onClick="edit"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center"android:padding="@dimen/len_5dp"android:text="编辑"/><TextViewandroid:id="@+id/exit_edit"android:onClick="exitEdit"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center"android:padding="@dimen/len_5dp"android:text="退出编辑"/><TextViewandroid:id="@+id/select_all"android:onClick="selectAll"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center"android:padding="@dimen/len_5dp"android:text="全选"/><TextViewandroid:id="@+id/select_none"android:onClick="selectNone"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center"android:padding="@dimen/len_5dp"android:text="全不选"/></LinearLayout><com.wkp.editlistview_library.view.EditListViewandroid:id="@+id/lv"app:wkp_checkedImg="@drawable/ic_checked"app:wkp_uncheckedImg="@drawable/ic_uncheck"app:wkp_measureHeight="true"android:layout_width="match_parent"android:layout_height="wrap_content"></com.wkp.editlistview_library.view.EditListView></LinearLayout></ScrollView><!--item_lv.xml--><?xmlversion="1.0"encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/item_tv"android:padding="10dp"android:layout_width="wrap_content"android:layout_height="wrap_content"/><TextViewandroid:padding="10dp"android:layout_alignParentRight="true"android:text="新"android:textColor="@android:color/white"android:background="@android:color/holo_red_light"android:layout_width="wrap_content"android:layout_height="wrap_content"/></RelativeLayout>

代码示例

/***kotlin用法*/@RequiresApi(Build.VERSION_CODES.KITKAT)classMainActivity:AppCompatActivity(){privatevaldata=arrayListOf<String>("托儿索","儿童劫","小学僧","橡皮妮","喜之螂","提款姬","鱼尾雯","鸡毛信","娃娃鱼","过家嘉","尿不狮","沙琪马","阿童木","大嘴猴","香港皎")privatevarmListView:EditListView?=nulloverridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)mListView=findViewById<EditListView>(R.id.lv)valadapter=ArrayAdapter(this,android.R.layout.simple_list_item_1,android.R.id.text1,data)//设置适配器mListView!!.adapter=adapter//设置是否测量高度(解决ScrollView冲突)//mListView!!.setMeasureHeight(true)//长按监听mListView!!.setOnItemLongClickListener({parent,view,position,id->//开启编辑状态mListView!!.isEditState=true//设置长按条目选中状态mListView!!.setItemChecked(position,true)//返回false会导致OnItemClickListener调用,使以上的选中状态消失true})//设置所有条目选中/未选中监听(每次条目状态改变都会回调)mListView!!.setOnAllItemCheckedListener{checked->Log.d("MainActivity","checked:"+checked)}}//删除按钮fundelete(view:View){//删除所有已选中条目(adapter的源数据为数组时不支持转换)mListView!!.deleteAllCheckedItem(data)}//编辑按钮funedit(view:View){//开启编辑状态mListView!!.isEditState=true}//退出编辑按钮funexitEdit(view:View){//关闭编辑状态mListView!!.isEditState=false}//全选按钮funselectAll(view:View){//全选mListView!!.setAllItemChecked()//是否全选Log.d("MainActivity","isAllItemChecked:"+mListView!!.isAllItemChecked)}//全不选按钮funselectNone(view:View){//全不选mListView!!.setAllItemUnchecked()//是否全不选Log.d("MainActivity","isAllItemUnchecked:"+mListView!!.isAllItemUnchecked)}}/***Createdbyuseron2017/11/6.*java用法*/@RequiresApi(api=Build.VERSION_CODES.KITKAT)publicclassTestActivityextendsAppCompatActivity{privateString[]mStrings={"托儿索","儿童劫","小学僧","橡皮妮","喜之螂","提款姬","鱼尾雯","鸡毛信","娃娃鱼","过家嘉","尿不狮","沙琪马","阿童木","大嘴猴","香港皎","脑残片","卖卖卖","333","干干干"};privateList<String>data=newArrayList<>();privateEditListViewmListView;{data.addAll(Arrays.asList(mStrings));}@OverrideprotectedvoidonCreate(@NullableBundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mListView=findViewById(R.id.lv);//设置编辑/退出编辑动画时长mListView.setAnimDuration(400);//设置适配器mListView.setAdapter(newArrayAdapter<String>(this,R.layout.item_lv,R.id.item_tv,data));//条目长按监听mListView.setOnItemLongClickListener(newAdapterView.OnItemLongClickListener(){@OverridepublicbooleanonItemLongClick(AdapterView<?>parent,Viewview,intposition,longid){//开启编辑状态mListView.setEditState(true);//设置长按条目选中状态mListView.setItemChecked(position,true);//返回false会导致OnItemClickListener调用,使以上的选中状态消失returntrue;}});//设置所有条目选中/未选中监听(每次条目状态改变都会回调)mListView.setOnAllItemCheckedListener(newEditListView.OnAllItemCheckedListener(){@OverridepublicvoidonAllItemChecked(booleanchecked){Log.d("TestActivity","checked:"+checked);}});}//删除按钮publicvoiddelete(Viewview){//删除所有已选中条目(adapter的源数据为数组时不支持转换)mListView.deleteAllCheckedItem(data);}//编辑按钮publicvoidedit(Viewview){//开启编辑状态mListView.setEditState(true);}//退出编辑按钮publicvoidexitEdit(Viewview){//关闭编辑状态mListView.setEditState(false);}//全选按钮publicvoidselectAll(Viewview){//全选mListView.setAllItemChecked();//是否全选Log.d("MainActivity","isAllItemChecked:"+mListView.isAllItemChecked());}//全不选按钮publicvoidselectNone(Viewview){//全不选mListView.setAllItemUnchecked();//是否全不选Log.d("MainActivity","isAllItemUnchecked:"+mListView.isAllItemUnchecked());}}

感谢各位的阅读,以上就是“ListView可编辑选择与删除条目怎么实现”的内容了,经过本文的学习后,相信大家对ListView可编辑选择与删除条目怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是恰卡编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

发布于 2021-12-22 21:55:36
收藏
分享
海报
0 条评论
46
上一篇:web开发中canvas是什么意思 下一篇:Linux CentOS下docker如何部署Asp.Net6 Core
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码