這篇文章主要講解了“ListView可編輯選擇與刪除條目怎么實現(xiàn)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“ListView可編輯選擇與刪除條目怎么實現(xiàn)”吧!
站在用戶的角度思考問題,與客戶深入溝通,找到環(huán)江網(wǎng)站設(shè)計與環(huán)江網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:做網(wǎng)站、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名申請、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋環(huán)江地區(qū)。
封裝列表控件,使其條目具有可編輯選擇、刪除等功能。
dependencies{ compile 'com.wkp:EditListView:1.0.2' //Android Studio3.0+可用以下方式 //implementation 'com.wkp:EditListView:1.0.2' }
屬性講解
<!--是否開啟測量高度--> <attr name="wkp_measureHeight" format="boolean"/> <!--未選中狀態(tài)時圖標(biāo)--> <attr name="wkp_uncheckedImg" format="reference"/> <!--選中狀態(tài)時圖標(biāo)--> <attr name="wkp_checkedImg" format="reference"/> <!--編輯/退出編輯動畫時長(默認(rèn)200)--> <attr name="wkp_editAnimDuration" format="integer"/>
布局示例
<!--activity_main.xml--> <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns: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"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android: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="刪除"/> <TextView android: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="編輯"/> <TextView android: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="退出編輯"/> <TextView android: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="全選"/> <TextView android: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.EditListView android: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--> <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/item_tv" android:padding="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android: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) class MainActivity : AppCompatActivity() { private val data = arrayListOf<String>("托兒索", "兒童劫", "小學(xué)僧", "橡皮妮", "喜之螂", "提款姬", "魚尾雯", "雞毛信", "娃娃魚", "過家嘉", "尿不獅", "沙琪馬", "阿童木", "大嘴猴", "香港皎") private var mListView: EditListView? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) mListView = findViewById<EditListView>(R.id.lv) val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, android.R.id.text1, data) //設(shè)置適配器 mListView!!.adapter = adapter //設(shè)置是否測量高度(解決ScrollView沖突) // mListView!!.setMeasureHeight(true) //長按監(jiān)聽 mListView!!.setOnItemLongClickListener({ parent, view, position, id -> //開啟編輯狀態(tài) mListView!!.isEditState = true //設(shè)置長按條目選中狀態(tài) mListView!!.setItemChecked(position, true) //返回false會導(dǎo)致OnItemClickListener調(diào)用,使以上的選中狀態(tài)消失 true }) //設(shè)置所有條目選中/未選中監(jiān)聽(每次條目狀態(tài)改變都會回調(diào)) mListView!!.setOnAllItemCheckedListener { checked -> Log.d("MainActivity", "checked:" + checked) } } //刪除按鈕 fun delete(view: View) { //刪除所有已選中條目(adapter的源數(shù)據(jù)為數(shù)組時不支持轉(zhuǎn)換) mListView!!.deleteAllCheckedItem(data) } // 編輯按鈕 fun edit(view: View) { // 開啟編輯狀態(tài) mListView!!.isEditState = true } // 退出編輯按鈕 fun exitEdit(view: View) { // 關(guān)閉編輯狀態(tài) mListView!!.isEditState = false } // 全選按鈕 fun selectAll(view: View) { // 全選 mListView!!.setAllItemChecked() //是否全選 Log.d("MainActivity","isAllItemChecked:" + mListView!!.isAllItemChecked) } // 全不選按鈕 fun selectNone(view: View) { // 全不選 mListView!!.setAllItemUnchecked() //是否全不選 Log.d("MainActivity","isAllItemUnchecked:" + mListView!!.isAllItemUnchecked) } } /** * Created by user on 2017/11/6. * java用法 */ @RequiresApi(api = Build.VERSION_CODES.KITKAT) public class TestActivity extends AppCompatActivity { private String[] mStrings = {"托兒索", "兒童劫", "小學(xué)僧", "橡皮妮", "喜之螂", "提款姬", "魚尾雯", "雞毛信", "娃娃魚", "過家嘉", "尿不獅", "沙琪馬", "阿童木", "大嘴猴", "香港皎","腦殘片","賣賣賣","333","干干干"}; private List<String> data = new ArrayList<>(); private EditListView mListView; { data.addAll(Arrays.asList(mStrings)); } @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mListView = findViewById(R.id.lv); //設(shè)置編輯/退出編輯動畫時長 mListView.setAnimDuration(400); //設(shè)置適配器 mListView.setAdapter(new ArrayAdapter<String>(this,R.layout.item_lv,R.id.item_tv,data)); //條目長按監(jiān)聽 mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { //開啟編輯狀態(tài) mListView.setEditState(true); //設(shè)置長按條目選中狀態(tài) mListView.setItemChecked(position,true); //返回false會導(dǎo)致OnItemClickListener調(diào)用,使以上的選中狀態(tài)消失 return true; } }); //設(shè)置所有條目選中/未選中監(jiān)聽(每次條目狀態(tài)改變都會回調(diào)) mListView.setOnAllItemCheckedListener(new EditListView.OnAllItemCheckedListener() { @Override public void onAllItemChecked(boolean checked) { Log.d("TestActivity", "checked:" + checked); } }); } //刪除按鈕 public void delete(View view) { //刪除所有已選中條目(adapter的源數(shù)據(jù)為數(shù)組時不支持轉(zhuǎn)換) mListView.deleteAllCheckedItem(data); } //編輯按鈕 public void edit(View view) { //開啟編輯狀態(tài) mListView.setEditState(true); } //退出編輯按鈕 public void exitEdit(View view) { //關(guān)閉編輯狀態(tài) mListView.setEditState(false); } //全選按鈕 public void selectAll(View view) { //全選 mListView.setAllItemChecked(); //是否全選 Log.d("MainActivity", "isAllItemChecked:" + mListView.isAllItemChecked()); } //全不選按鈕 public void selectNone(View view) { //全不選 mListView.setAllItemUnchecked(); //是否全不選 Log.d("MainActivity", "isAllItemUnchecked:" + mListView.isAllItemUnchecked()); } }
感謝各位的閱讀,以上就是“ListView可編輯選擇與刪除條目怎么實現(xiàn)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對ListView可編輯選擇與刪除條目怎么實現(xiàn)這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
分享名稱:ListView可編輯選擇與刪除條目怎么實現(xiàn)
鏈接分享:http://www.chinadenli.net/article12/jcoogc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、網(wǎng)站收錄、手機網(wǎng)站建設(shè)、網(wǎng)站制作、關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)