1.
更新ListView中的數(shù)據(jù),通過調(diào)用BaseAdapter對象的notifyDataSetChanged()方法:
mAdapter.notifyDataSetChanged();
2.
每個listview都有無效的位置,如第一行的前一行,最后一行的后一行,這個無效的位置是一個常量.
ListView.INVALID_POSITION
AdapterView.INVALID_POSITION
3.
有時我們需要在程序中通過點擊按鈕來控制ListView行的選中,這就用到了在程序中如何使用代碼來選擇ListView項.
mListView.requestFocusFromTouch();
mListView.setSelection(int index);
第一條語句并不是必須的,但是若你ListView項中含有Button,RadioButton,CheckBox等比ListView取得 焦點優(yōu)先極高的控件時,那么第一條語句是你必須加的.
4.?
同樣的,若你ListView項中含有Button,RadioButton,CheckBox等比ListView取得 焦點優(yōu)先級高的控件時,ListView的setOnItemClickListener是不被執(zhí)行的,這時你需要在你的xml文件中對這些控件添加android:focusable="false"注意這條語句要放在xml文件中修改,在代碼中使用是無效的.也可以設(shè)置android:descendantFocusability
beforeDescendants:viewgroup會優(yōu)先其子類控件而獲取到焦點
afterDescendants:viewgroup只有當其子類控件不需要獲取焦點時才獲取焦點
blocksDescendants:viewgroup會覆蓋子類控件而直接獲得焦點
通常我們用到的是第三種,即在Item布局的根布局加上android:descendantFocusability=”blocksDescendants”的屬性就好了,至此listview點擊的靈異事件告一段落。心得:遇到不會不懂的地方除了網(wǎng)上查詢資料之外,也可以多多去嘗試每種屬性的作用,多閱讀官方文檔(我始終覺得還是讀原文的比翻譯的理解的會更好)。
5.
如何保持ListView的滾動條一直顯示,不隱藏呢:? xml文件中做如下修改android:fadeScrollbars="false"
6.
ListView本身有自己的按鍵事件,即你不需要設(shè)置方向鍵的標識,按下方向鍵ListView就會有默認的動作,那如何進行控制,編寫自己的onKey呢,你需要在Activity中重寫dispatchKeyEvent(KeyEvent event);方法,在這里面定義你自己的動作就可以了