Android listview中使用checkbox

來源:互聯網
上載者:User

標籤:listview   checkbox   android   

最近比較忙碌,我也不知道忙的什麼東西,打算寫的部落格寫了一半,還沒寫完,今天先扯一扯項目中遇到的一個問題,一方面防止以後遇到這個問題忘記如何解決,另一方面希望可以提供給遇到同樣問題的朋友一個思路.
下面開始正題,在listview的item中使用checkbox,當你按照普通的listview的用法使用時,你會遇到下面這樣的問題:
1.checkbox可以點擊,但是listview的item無法點擊
2.無法獲得checkbox被點擊的是哪一行
第一個問題涉及到事件分發,下一篇再扯(我會按照我的理解,通俗易懂的來描述),第二個問題我的理解就是getview無法重繪的原因,這裡拿不到position的值,為了能解決我的問題,我需要換一種思路,也就是我今天介紹的方法:屏蔽checkbox的選擇事件,也就是說checkbox不能響應選中事件,當使用者點擊listview的item時,製造假象,用代碼控制選中checkbox

恩,差不多就這些了,由於代碼直接寫到項目中了,就不寫demo了,直接貼一下主要代碼,僅供參考,如果您有更好的方法可以相互交流

1,設定 checkbox無法響應點擊事件

android:clickable="false"        android:focusable="false"        android:focusableInTouchMode="false" 

2.適配器中聲明一個值用來控制checkbox的選中情況

private static HashMap<Integer,Boolean> isSelected;

public static HashMap<Integer,Boolean> getIsSelected() {          return isSelected;      }        public static void setIsSelected(HashMap<Integer,Boolean> isSelected) {      MyDocShowAdapter.isSelected = isSelected;      }  

isSelected = new HashMap<Integer, Boolean>();         for(int i=0; i<list.size();i++) {              getIsSelected().put(i,false);          } 

3.根據item的點擊情況,給checkbox賦值

mListView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {ViewHolder holder = (ViewHolder) view.getTag(); holder.mCheckBox.toggle();MyDocShowAdapter.getIsSelected().put(position, holder.mCheckBox.isChecked());}});

今天就到這,有問題請留言,多交流


Android listview中使用checkbox

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.