ListView addHeaderView()、addFooterView()和变更列表

addHeaderView()、addFooterView()

addHeaderView()和addFooterView()是用于在给ListView设置Adapter之前在列表中添加或删除一些元素。

主要有以下几点注意事项:

  1. 两个方法必须在setAdapter()之前调用。如果之前调用过addHeaderView()或addFooterView(),在setAdapter(A)时,真正设置的是另一个adapter B,把之前预添加的元素和A中的元素统一由B来管理。
  2. 多次调用addHeaderView(),后插入的位于先插入的之后,因此,属于尾插法。addFooterView()同理。
  3. 在头部添加的元素会把原来A中的元素向后挤,即使用addHeaderView()添加两个元素后,原来位于Adapter A中position = 0的元素,现在的position可能是2了。

变更列表项

已经展示的列表需要变更(添加、删除等)时,要对其数据源做添加/删除,然后对适配器调用notifyDataSetChanged()方法让适配器进行刷新列表。

原文地址:https://www.cnblogs.com/pravez/p/12604645.html

时间: 2024-10-24 20:17:04

ListView addHeaderView()、addFooterView()和变更列表的相关文章

Android listview addHeaderView 和 addFooterView 详解

addHeaderView()方法:主要是向listView的头部添加布局 addFooterView()方法:主要是向listView的底部添加布局 需要注意的是添加布局的时候应该添加从父容器开始添加,而不能直接添加父容器中的子控件.例如:从一个xml布局文件中添加一个button控件, 只能将整个布局xml文件添加进去.而不能单单只添加button控件. 当添加头部和底部布局还有另外一个重载方法就是addHeaderView(headView, null, false) 和addFooter

ListView addHeaderView 对 position 的影响

1. 在 public View getView(int position, View convertView, ViewGroup parent) 中position 和 是否有headerView无关,列表item的序号. 2. 在 public void onItemClick(AdapterView<?> parent, View view, int position, long id) 点击事件中position 是算上了headerView的要对应上 列表item的序号需要 pos

Android Listview addHeaderView setadapter的时候莫名NullPointerException 解决

解决  Android Listview addHeaderView setadapter的时候莫名NullPointerException 改代码的时候碰到的bug Bug 1: E/AndroidRuntime(15920): java.lang.RuntimeException: Unable to start activity ComponentInfo{ }: android.view.InflateException: Binary XML file line #35: Error

ListView 的addFooterView问题

今天在给一个listview添加点击刷新功能时,使用了listview的addFooterView()方法实现,但是发现添加后,怎么也不显示. 后来发现addFooterView()方法一定要在listview的setAdapter()之前执行. 还有一个就是,给listview添加footer的时候,要注意inflate方法的第二个参数,是目标listview. View view2 = (View) getLayoutInflater().inflate(R.layout.click_loa

Android中ListView的addFooterView不显示的问题

mListView.addFooterView(btn_more, null, false); mListView.setAdapter(mBlogListAdapter); 把addFootView放在setAdapter之前就可解决. Android中ListView的addFooterView不显示的问题

RecyclerView更通用——listView的onItemClick,onLongItemClick,addHeaderView,addFooterView

一.点击事件 setOnItemClickListener,setOnItemLongClickListener RecyclerView中虽然没有提供上面这两个接口,但是给我们提供了另外一个接口:OnItemTouchListener看这个接口的文档描述我们知道此接口可以对RecyclerView中的手势进行监听处理,因此我们可以采用OnItemTouchListener+GestureDetector来实现RecyclerView的OnItemClick和OnItemLongClick.实现

android listview addHeaderView和addFooterView的注意事项

1. item内如果有button等控件时,在监听listview的onitemclick事件时,焦点会被item内的button. imagebutton等控件抢走,从而导致在listview设置了onitemclick事件后不会被触发.解决方法是在初始化item的时候屏蔽掉 其内部button等控件的焦点获取,具体方法可以在自定义item的根控件中调用: [java] view plaincopy setDescendantFocusability(ViewGroup.FOCUS_BLOCK

Android学习笔记:ListView简单实用--显示文字列表

在activity中的编写如下代码: final List<String> items = new ArrayList<String>(); //设置要显示的数据,这里因为是例子,所以固定写死 items.add("item1"); items.add("item2"); items.add("item3"); ListView listView = (ListView) findViewById(R.id.listVie

dedecms讲解-arc.listview.class.php分析,列表页展示

./plus/list.php - 动态展示栏目列表页(也可能是频道封面) arc.listview.class.php 是dedecms的列表页的相关处理类 __construct()           // 初始化一些字段,变量CountRecord()           // 统计列表记录,总条目数,每页条目数,并对列表模板进行解析MakeHtml()              // 创建列表页HTML,主要是后台批量生成Display()               // 解析并展示