androidListView

1.

更新ListView中的数据,通过调用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取得 焦点优先极高的控件时,那么第一条语句是你必須加的.

4. 

同样的,若你ListView项中含有Button,RadioButton,CheckBox等比ListView取得 焦点优先级高的控件时,ListView的setOnItemClickListener是不被执行的,这时你需要在你的xml文件中对这些控件添加android:focusable="false"注意这条语句要放在xml文件中修改,在代码中使用是无效的.也可以设置android:descendantFocusability

beforeDescendants:viewgroup会优先其子类控件而获取到焦点

afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

通常我们用到的是第三种,即在Item布局的根布局加上android:descendantFocusability=”blocksDescendants”的属性就好了,至此listview点击的灵异事件告一段落。心得:遇到不会不懂的地方除了网上查询资料之外,也可以多多去尝试每种属性的作用,多阅读官方文档(我始终觉得还是读原文的比翻译的理解的会更好)。

5.

如何保持ListView的滚动条一直显示,不隐藏呢:  xml文件中做如下修改android:fadeScrollbars="false"

6.

ListView本身有自己的按键事件,即你不需要设置方向键的标识,按下方向鍵ListView就會有默认的动作,那如何进行控制,编写自己的onKey呢,你需要在Activity中重写dispatchKeyEvent(KeyEvent event);方法,在这里面定义你自己的动作就可以了

你可能感兴趣的:(androidListView)