Android通用——ListView內放置CheckBox

ListView內部放置CheckBox,可以用來做多選的功能

將選中的item給予同一種動作操作


在做這個的時候遇到幾個問題

1、checkBox能監聽到,但無法獲取item的點擊事件

2、item能獲取點擊事件,chexkBox無法正常的刷新;就是數據在運行的時候沒有錯,但是一滑動就導致了沒被選中的數據也顯示被選中了

3、checkBox點擊了,但是一直無法正常的顯示選中,總是一閃就變成沒選中了

4、沒點擊在chexkBox上,checkBox也會顯示選中(會閃一下)


問題解答:(大概的方向,具體的不一定就是這個方法解答,給個解決方向)

1的問題,是因爲chexkBox截取了item的Click事件;導致item無法正常執行onItemClick事件;

可以在xml內設置CheckBox的屬性:

       android:focusable="false"

android:focusableInTouchMode="false"


2的問題,應該是使用了checkBox的OnCheckedChangeListener的監聽;這個監聽的名稱就很明顯了,說的就是chexkbox

的狀態變化的時候觸發的,所以一滑動ListView,選中的CheckBox的狀態當然就被改變了,自然的就觸發了這監聽;

所以在ListView內最好不要這個監聽來處理事件,當然,網絡上有其他的方法可以使這個方法得到正常的使用,當本人認爲:有哪個必要麼?


3的問題,應該是設置CheckBox的狀態的判斷有問題,閃一下,說明:Checkbox

監聽正常,有改變狀態了,只是在後來getView刷新的時候,判斷設置ChexkBox的狀態是如何的時候,出了問題


4的問題,具體不懂,本人猜想是ChackBox的OnCheckedChangeListener的監聽的問題,不過經過多次測試,

我只在包圍ChexkBox的第一個父佈局內點擊的時候會發生,所以我將父佈局的範圍控制在了ChexkBox差不多大小,

這樣有利於點擊的時候能正常使ChexkBox的狀態改變,也增加了軟件的體驗性


最後提供下載源碼的地址:

辛苦費^_^——

免費地址——百度網盤:http://pan.baidu.com/s/1ntJU2Yt




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章