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);方法,在这里面定义你自己的动作就可以了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,041评论 25 709
  • 1 玫瑰花凋谢了还会开, 毛绒熊不见了还能买, 把一颗真心弄丢了才是最大的悲哀。 2 鲜花总是插在牛粪上, 牛粪会...
    Crazy麻麻阅读 2,880评论 6 5
  • 初见 只道是寻常 未发现 你早悄悄溜进了我的心里 发芽 毫无防备 你说我的表情看着让你很害怕 我说今天风太大 你相...
    丘11阅读 1,059评论 0 1
  • 有时候我们在做决策时会左右为难,不知道怎么选择,应该向左走还是向右走,应该选择方案A还是方案B。担心向左走就遇不到...
    自在生活禅阅读 3,805评论 0 1
  • Implement a basic calculator to evaluate a simple express...
    Jeanz阅读 1,475评论 0 0