ListView Adapter常见问题

  1. 解决Item点击无效(因Item里有Checkbox等抢焦点的控件)
    a。将抢焦点的控件设置为无焦点

    android:focusable="false"

    b。再最外围多布局设置

    android:descendantFocusability="blocksDescendants"

    该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。

    属性的值有三种:

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

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

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

  2. ListView复用导致内容错乱
    将选中的控件位置添加到List里,再遍历设置控件。
    private List<Integer> mPos = new ArrayList<Integer>(); final CheckBox cb = holder.getView(R.id.checkBox);
    cb.setChecked(false); if(mPos.contains((Integer)holder.getPosition())){
        cb.setChecked(true);
    }
    cb.setOnClickListener(new View.OnClickListener() { @Override  public void onClick(View v) { if(cb.isChecked()){ mPos.add(holder.getPosition());
            }else { mPos.remove((Integer)holder.getPosition());
            }
        }
    });
时间: 2024-10-19 17:19:05

ListView Adapter常见问题的相关文章

Android开发笔记(12)——ListView &amp; Adapter

转载请注明:http://www.cnblogs.com/igoslly/p/6947225.html 下一章是关于ListFragment的内容,首先先介绍ListView的相关配置,理解ListFragment也相较容易. 在fznpcy专栏:http://blog.csdn.net/fznpcy/article/details/8658155/有较为详尽的讲解和范例. ListView & Adapter 一.Adapter Adapter是连接后端数据和前端显示的适配器接口,是数据和UI

Android ListView Adapter的getItemViewType和getViewTypeCount多种布局

 <Android ListView Adapter的getItemViewType和getViewTypeCount多种布局> 在Android的ListView中,如果在一个ListView中要实现多种样式的ListView布局样式,则需要在ListView的适配器Adapter中用到:getItemViewType()和getViewTypeCount().getViewTypeCount()告诉ListView需要加载多少种类型的Item View,getItemViewType(

ListView Adapter适配器的布局实例及相关问题

模仿的布局: 模仿的效果图: 实现的方式是:在一个ListView空间里,自定义适配器Adapter,,然后ListView的Item的布局进行改写. 总结: 遇到的问题: (1)不会设置ListView的行间距: 百度知:Android_listview设置每条信息的间距 设置listView的item间距,可以在xml布局文件中的listView下设置xml属性: android:divider="#00000000" android:dividerHeight="18d

两种布局的ListVIew Adapter。例如微信对话界面

这个界面  实现的不是微信对话界面.实现的是,focus的状态下,变为放大的另一种布局 重点: 一.定义类型个数 private final int TYPE_COUNT = 2;    private final int FIRST_TYPE = 0;    private final int OTHERS_TYPE = 1; 二.重写两个函数 @Override    public int getViewTypeCount() {        return TYPE_COUNT;    }

HowTo: ListView, Adapter

I was surprised that getViewTypeCount() is so rarely overrided. If you are an expert in this – this post is not for you) ListView and Adapter Basics How it works: 1.ListView asks adapter "give me a view" (getView) for each item of the list 2.A n

ListView+Adapter适配器的使用与Listview常见的UI显示问题

一.ListView的事件: 1.setOnItemClickListener()点击事件 listview.setOnItemClickListener(new OnItemClickListener() {             @Override            public void onItemClick(AdapterView<?> parent, View view,                    int position, long id) {         

Android笔记十一.ListView+Adapter

深入理解Adapter 一.ListView ListView是Android开发过程中较为常见的组件之一,它将数据以列表的形式展现出来.一般而言,一个ListView由以下三个元素组成: 1.View:展示列表视图,通常是一个xml所指定的.大家都知道Android的界面基本上是由xml文件负责完成的,所以ListView的界面也理所应当的使用了xml定义.例如在ListView中经常用到的"android.R.layout.simple_list_item_1"等, 就是Andro

Android Listview &amp; Adapter

Listview主要有两个职责: 将数据填充到布局 处理用户的选择点击等操作 列表的显示需要三个元素: ListVeiw 用来展示列表的View 适配器(Adapter) 用来把数据映射到ListView上的中介 数据(data)    具体的将被映射的字符串,图片,或者基本组件 首先要了解什么是适配器: 适配器是一个连接数据和AdapterView(ListView就是一个典型的AdapterView)的桥梁,通过它能有效地实现数据与AdapterView的分离设置,使AdapterView与

android开发之路08(ListView&amp;Adapter)

ListView控件介绍:用于将数据库中的数据或者网络中的数据通过列表的形式显示出来:ListView采用MVC模式将前端显示和后端数据进行分离. 也就是说,ListView控件在装载数据时并不是直接使用ListView.add或者类似的方法添加数据,而是需要指定一个Adapter对象.该对象相当于MVC模式中的C(控制器),ListView相当于MVC模式中的V(视图),用于显示数据.为ListView提供数据的List或数组相当于MVC模式中的M(模型)在ListView控件中通过Adapt