標籤:android listview onitemclick 不響應
最近在做一個點菜的Android應用,要用到ListView,我希望可以通過ListView中的Button對點過的菜進行操作如
我希望通過點擊加減改變菜品的總數量和左邊所顯示的菜品總價格
可是當我使用onItemClick方法時發現ListView不響應。。
這實在很坑
在網上找了很久看了無數篇的博文,解決方案大體以下兩種:
1.將ListView的Item Layout中的所有子控制項focusable屬性設定為false2.將item layout的根控制項設定屬性(推薦輕量級特別是修改別人的代碼)android:descendantFocusability=”blocksDescendant”這樣Item Layout就屏蔽了所有子控制項擷取Focus焦點的許可權,不需要針對Item Layout中的每一個控制項重新設定focusable屬性原因在於:若你的item中有button或者checkbox等控制項,預設情況下焦點focus是最先交給這些子控制項,而ListView的Item能被選中的基礎是它能擷取Focus焦點,所以,我們可以通過將ListView中Item中包含的所有控制項的focusable屬性設定為false,這樣ListView的Item就自動獲得了Focus焦點的許可權,也就可以被選中了,同時也會響應onItemClickListener中的onItemClick()方法。
還沒結束,我做了無數嘗試之後依然不響應。。最後發現問題的原因在於ListView的樣式檔案中,我使用了HorizontalScrollView而使用該種布局會導致以上的兩種解決方案均失效。。原因不明,假如有大神看到本菜鳥的博文,希望能指點一二。。
還有在ListView的樣式檔案的根布局假如使用了match_parent屬性那麼在你的整體展示的<ListView/>這個標籤中必須使用這個屬性。。否則就會報錯。。
Android中onItemClick事件不響應