安卓開發:listview長按進入多選刪除操作
在實際開發中有好多多選刪除的使用場景,我們現在遇到的是,listview 裡邊是一個 BaseAdapter 出來的列表
簡單分析下,大概是需要這樣操作,首先 listview的 item項裡要有一個 多選框 這個多選框 預設是隱藏的。
一般情況下 點選是要進入詳情頁面。然後長按的話進入多選刪除操作。所以我們這裡要設定兩個事件 分別為:
OnClickListener 和 OnLongClickListener
先看下佈局檔案中 設定了 checkBox 不可以被點選 以及隱藏 ,同時我還 設定了一個全域性變數。去判斷此時是否處雨多選狀態。
以及全域性設定了一個 map 。map 中儲存了 每個項的id 以及選中狀態。 這樣在呼叫 Adapter的getView 方法時候可以去去根據多選
狀態 以及 是否選中 去進行 選中操作
OnLongClickListener 事件 點選後進入操作狀態。設定 CheckBox 顯示 設定全域性變數為多選狀態
OnClickListener 根據多選狀態 做操作
<CheckBox
android:id="@+id/cb_select"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"
android:layout_gravity="center"
android:clickable="false"
/>
class Videoad extends BaseAdapter {
@Override
public int getCount() {
return videosList.size();
}
@Override
public Object getItem(int i) {
return i;
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
// 1.解析佈局檔案 成為VIEW
LayoutInflater inflater = LayoutInflater.from(getActivity());
View view1 = inflater.inflate(R.layout.my_videocollect_item, viewGroup, false);
//2.填充資料
CheckBox cb_select = view1.findViewById(R.id.cb_select);
if(isselect){
cb_select.setVisibility(View.VISIBLE);
if(deletemap.get(cid+"")){
cb_select.setChecked(true);
}else{
cb_select.setChecked(false);
}
}
LinearLayout video_item = view1.findViewById(R.id.video_item);
final int vid = videosList.get(i).getId();
video_item.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(isselect){
boolean isseelctitem = deletemap.get(""+cid);
if(isseelctitem ){
deletemap.put(""+cid,false);
}else{
deletemap.put(""+cid,true);
}
videoad.notifyDataSetChanged();
}else{
Intent intent = new Intent(getActivity().getApplicationContext(),Videodetail.class);
intent.putExtra("id", vid);
startActivity(intent);
}
}
});
video_item.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
isselect = true;
deleteall.setVisibility(View.VISIBLE);
videoad.notifyDataSetChanged();
return false;
}
});
return view1;
}
}
相關文章
- 短視訊app開發,左滑刪除或長按彈出刪除選擇框APP
- 安卓開發——ListView控制元件(初始化ListView、列表重新整理、長按新增menu)安卓View控制元件
- 搭建直播平臺,Android ListView 長按刪除列表項AndroidView
- ListView全選刪除CheckBoxView
- c# listview 刪除選中子項C#View
- 可編輯選擇、刪除條目的ListViewView
- iOS 多選刪除(附tableViewTips及單選刪除)iOSView
- RecyclerView 梳理:點選&長按事件、分割線、拖曳排序、滑動刪除View事件排序
- 點選刪除按鈕彈出是否刪除提示框
- JavaScript點選按鈕刪除div元素JavaScript
- jQuery點選按鈕刪除div元素jQuery
- 安卓開發SQLite增刪改查操作例項安卓SQLite
- 點選刪除按鈕刪除當前行程式碼例項行程
- 小程式實現長按刪除圖片
- kindeditor 圖片管理增加刪除操作按鈕
- (有圖)仿QQ側滑選單:RecyclerView側滑選單,長按拖拽,滑動刪除View
- JavaScript點選按鈕刪除一個div元素JavaScript
- 安卓 listview安卓View
- JavaScript--全選、全不選、反選、無重新整理刪除、批量刪除、即點即改入庫(在yii框架中操作)JavaScript框架
- 原生js多選框選中排序及刪除JS排序
- 直播商城平臺,購物車長按右滑出現刪除按鈕
- 短視訊系統,長按側滑實現刪除的按鈕
- 刪除按鈕點選後的虛線輪廓
- iOS開發長按tabbaleVewiOS
- Android列表實現單選、多選、全選、取消、刪除Android
- iOS 程式碼限制textField的輸入長度並且刪除按鈕還得有效iOS
- 短視訊app製作,實現訊息列表的左滑刪除或長按刪除APP
- win10刪除多餘啟動項怎麼操作 win10如何刪除多餘的開機啟動項Win10
- 單選多選按鈕
- win10怎麼刪除右鍵多餘選項 win10刪除右鍵多餘選項的方法Win10
- 安卓開發學習-按鈕控制元件安卓控制元件
- Android中ListView動態新增刪除項AndroidView
- Laravel 軟刪除操作Laravel
- Docker批量操作(啟停、刪除、歸檔、載入)Docker
- win10刪除輸入法在哪裡 win10刪除多餘的輸入法Win10
- android 滑動刪除的listview(自定義view)AndroidView
- 安卓開發入門(一)開發環境搭建安卓開發環境
- js操作 新增刪除table行,並進行重新整理JS