基於ListView和CheckBox實現多選和全選記錄的功能
- /**
- * @author [email protected]
- * MultiSelectActivity
- */
-
publicclass MultiSelectActivity extends Activity implements
- OnItemClickListener {
- privatestaticfinal String TAG = "MultiSelectActivity";
- private ListView contactsDelList;
- private Button contactsDelBtn;
- private Button contactsCancelBtn;
- private CheckBox selectAll;
- private Cursor cursor;
-
private
- privatestaticfinal String[] PROJECTION = new String[] { Contacts._ID,
- Contacts.DISPLAY_NAME };
- privatestaticfinalint CONTACTS_ID_INDEX = 0;
- privatestaticfinalint DISPLAY_NAME_INDEX = 1;
-
private ContactsDeleteListItemViews holderViews;
- privatefinalclass ContactsDeleteListItemViews {
- TextView nameView;
- CheckBox delCheckBox;
- }
- @Override
- publicvoid onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.contacts_delete_activity);
- contactsDelList = (ListView) findViewById(R.id.contacts_delete_list);
- contactsDelBtn = (Button) findViewById(R.id.contacts_delete_btn);
- contactsCancelBtn = (Button) findViewById(R.id.contacts_cancel_btn);
- selectAll = (CheckBox) (findViewById(R.id.contacts_delete_list_header)
- .findViewById(R.id.select_all));
- contactsDelList.setOnItemClickListener(this);
- contactsDelBtn.setOnClickListener(this);
- contactsCancelBtn.setOnClickListener(this);
- selectAll.setOnClickListener(this);
- }
- @Override
- protectedvoid onResume() {
- super.onResume();
- refreshData();
- }
- // 查詢資料庫
- privatevoid refreshData() {
- cursor = getContentResolver().query(Contacts.CONTENT_URI, PROJECTION,
- null, null, null);
- contactsDeleteAdapter = new ContactsDeleteAdapter(this, cursor);
- contactsDelList.setAdapter(contactsDeleteAdapter);
- }
- class ContactsDeleteAdapter extends BaseAdapter {
- Cursor cur;
- Map<Integer, Boolean> selectedMap;
- HashSet<String> delContactsIdSet;
- public ContactsDeleteAdapter(Context context, Cursor c) {
- cur = c;
- // 儲存每條記錄是否被選中的狀態
- selectedMap = new HashMap<Integer, Boolean>();
- // 儲存被選中記錄作資料庫表中的Id
- delContactsIdSet = new HashSet<String>();
- for (int i = 0; i < cur.getCount(); i++) {
- selectedMap.put(i, false);
- }
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- if (convertView == null) {
- convertView = LayoutInflater.from(MultiSelectActivity.this)
- .inflate(R.layout.contacts_delete_list_item, null);
- holderViews = new ContactsDeleteListItemViews();
- holderViews.nameView = (TextView) convertView
- .findViewById(R.id.name);
- holderViews.delCheckBox = (CheckBox) convertView
- .findViewById(R.id.delete_list_item);
- convertView.setTag(holderViews);
- }
- cur.moveToPosition(position);
- ContactsDeleteListItemViews views = (ContactsDeleteListItemViews) convertView
- .getTag();
- final String name = cur.getString(DISPLAY_NAME_INDEX);
- views.nameView.setText(name);
- views.delCheckBox.setChecked(selectedMap.get(position));
- // 儲存記錄Id
- if (selectedMap.get(position)) {
- delContactsIdSet.add(String.valueOf(cur
- .getInt(CONTACTS_ID_INDEX)));
- } else {
- delContactsIdSet.remove(String.valueOf(cur
- .getInt(CONTACTS_ID_INDEX)));
- }
- return convertView;
- }
- @Override
- publicint getCount() {
- return cur.getCount();
- }
- @Override
- public Object getItem(int position) {
- if (cur.moveToPosition(position)) {
- return cur;
- } else {
- returnnull;
- }
- }
- @Override
- publiclong getItemId(int position) {
- return position;
- }
- }
- @Override
-
相關推薦
基於ListView和CheckBox實現多選和全選記錄的功能
應用開發中經常會有從資料庫中讀取資料顯示,然後選中多條、全部記錄並且刪除的需求。在做定製系統聯絡人的時候也遇到這樣的需求,下面寫個簡單的通過ListView和CheckBox實現多選、全
Android中使用ListView和CheckBox實現購物車多選功能
1效果圖 2MainActivity對應的佈局activity_main <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:to
jquery和js分別實現獲取checkbox的值+jquery實現複選框全選
//jquery實現全選 $(function(){ $("#checkAll").click(function(){ $(".checkOne").attr("checked",this.checked) }) }) //批量刪除jquery實現提示 function p_d
Android裡ListView裡面新增CheckBox實現多選。
1. 我在網上找了很多關於這個方面的文章,因為現在Android裡的ListView基本上都用到了ViewHolder,用到了convertView。 2. 網上有的文章也有用到convertView的,只是資料多了CheckBox的選擇基本上是出錯的了。 3.我想過用Ad
js實現checkbox全選和取消,子複選框全選時全選框也自動選上
<input type="checkbox" id="allcheck" onclick="demo()" />全選 <input type="checkbox" name="choice" class="checknum" onclick="se
EasyUI下拉框實現多選、全選、複選和模糊查詢
其實整個的思路還是很麻煩的。之前網上查不到能囊括上面所有東西的。但是參考之後還是摸出了一種新的方法,但是仍然不完美。畢竟是在封裝的東西上面修改。程式碼實現:<!DOCTYPE html> <html lang="en"> <head&g
android UI進階之實現listview中checkbox的多選與記錄
今天繼續和大家分享涉及到listview的內容。在很多時候,我們會用到listview和checkbox配合來提供給使用者一些選擇操作。比如在一個清單頁面,我們需要記錄使用者勾選了哪些條目。這個的實現並不太難,但是有很多朋友來問我如何實現,他們有遇到各種各樣的問
【Java並發編程】之六:Runnable和Thread實現多線程的區別(含代碼)
技術分享 runnable 避免 實際應用 details div 一個 預測 enter 轉載請註明出處:http://blog.csdn.net/ns_code/article/details/17161237 Java中實現多線程有兩種方法:繼承Thre
使用Python之paramiko模塊和threading實現多線程登錄多臺Linux服務器
python ssh paramikothreading 遠程 有時候我們需要在多臺Linux服務器上面執行同樣的命令,或者同樣的操作,如果我們每一臺單獨登錄上去做這樣太麻煩了,所以我們可以考慮使用自動化腳本來實現。我這裏使用Python多線程的方式,這樣速度更快,如果使用Sh
Java - Thread 和 Runnable實現多線程
abs java jdk1 public adt system 轉載 作用 final Java多線程系列--“基礎篇”02之 常用的實現多線程的兩種方式 概要 本章,我們學習“常用的實現多線程的2種方式”:Thread 和 Runnable。之所以說是常用的,是因為通
js實現復選框全選和不選
onclick check checkbox rip () nbsp title false style <html> <head> <title></title> </head> <style>
【JS】用checked實現複選框全選和全不選
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf8"> <title>無標題文件</title>
Java併發程式設計(6):Runnable和Thread實現多執行緒的區別(含程式碼)
Java中實現多執行緒有兩種方法:繼承Thread類、實現Runnable介面,在程式開發中只要是多執行緒,肯定永遠以實現Runnable介面為主,因為實現Runnable介面相比繼承Thread類有如下優勢: 1、可以避免由於Java的單繼承特性而帶來的侷限; 2、增強程式的健壯性,程式碼能夠被多個執行
Java並發編程(6):Runnable和Thread實現多線程的區別(含代碼)
線程休眠 ket out dde 可能 休眠 stat for oid Java中實現多線程有兩種方法:繼承Thread類、實現Runnable接口,在程序開發中只要是多線程,肯定永遠以實現Runnable接口為主,因為實現Runnable接口相比繼承Thread類有如下優
Vue起步之實現多物件和元件
1多物件: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Vue.js</title> <link rel="styl
JavaScript實現多型和繼承的封裝操作示例
封裝Encapsulation 如下程式碼,這就算是封裝了 (function (windows, undefined) { var i = 0;//相對外部環境來說,這裡的i就算是封裝了 })(window, undefined); 繼承Inheritance (functi
[原始碼和文件分享]基於Qt和OpenCV實現彩色圖和灰度圖的轉換
一、實驗目的與要求 1.1 目的 熟悉Qt視覺化開發,理解C++的面向物件思想 熟悉Qt和Opencv開發環境搭建 瞭解Qt訊息機制 初步理解Opencv的用法 學會使用c++異常處理 1.2 要求 使用Qt編寫一程式,點
CSS+checkbox 實現多選按鈕 多選標籤
效果圖: CSS: input[type="checkbox"] { position: absolute; clip: rect(0, 0, 0,
MVC身份驗證.MVC過濾器.MVC6關鍵字Task,Async.前端模擬表單驗證,提交.自定義匿名集合.Edge匯出到Excel.BootstrapTree樹狀選單的全選和反選.bootstrap可搜尋可多選可全選下拉框
在寫這篇部落格之前要嘮叨幾句.本人已從事開發四年有餘.從前兩年的熱情如火.到現在的麻木.總感覺要像上突破.卻又不敢輕舉妄動. 沒事就寫點基礎程式碼.指點下新人吧 1.MVC身份驗證. 有兩種方式.一個是傳統的所有控制器繼承自定義Control,然後再裡面用MVC的過濾器攔截.所以每次網站的後臺被訪問時.
結合apache和tomcat實現多域名、多埠繫結
1、本機測試的話,要先配置主機頭系統:windowsxp C:\WINDOWS\system32\drivers\etc\hosts檔案 新增 127.0.0.1 www.abc.com 127.0.0.1 www.efg.c