android中与Adapter相关的控件----ListView
ListView讲解:
一、ListView这个控件是一个使用非常广泛的控件,值得深入的学习和研究。基本使用已经在Adapter中使用过了
二、常用的属性和方法
footerDividersEnabled:是否在footerView(表尾)前绘制一条分割线,默认是true
headerDividersEnabled:是否在headerView(表头)后绘制一条分割线,默认是true
divider:设置分割条,可以是颜色分割,也可以用drawable资源分割
dividerHeight:设置分隔条的高度
stackFromBottom:列表从底部开始显示,设置为true即可,好像没什么用。
cacheColorHint:如果你为ListView设置了一个图片作为Background的时候,当你拖动或者点击listView空白位置会发现item变成了变成黑色了,这是时候我们通过这个擦车ColorHint将颜色设置为透明:#000000
scrollbars ="none"或者setVerticalBarEnabled(true)隐藏滑动条
添加listView的表头或者表尾貌似只能在Java中操作
addHeaderView(View view):添加HeaderView(表头),括号里面是一个View对象,可以通过context上下文对象获得。
addFooterView(View view):添加foot二View(表尾),括号里面是一个view对象,同样也是可以通过context上下文对象获得。
addHeaderView(headerView,null,false):和上面的区别:设置Header是否可以被选中
addFooterView(footerView,null,false):和上面的区别;设置footer是否可以被选中
三、listView的焦点问题
如果向item中添加button,checkBox等等控件的时候,这时我们就需要考虑焦点的问题
当写一个简单的listView,上面如果含有Button,checkBox的时候,点击item不起作用,也就是不能触发onItemClick事件,也就是说listView的焦点被其它控件抢占了。
解决的办法:
方法1、为抢占控件设置android:focusable = "false"
方法2、item根节点设置android:descendantFocusability = "blocksDescendants",属性值有三种选择
beforeDescendants:这个值表示ViewGroup会优先其子类控件而获取焦点
afterDescendants:这个值表示ViewGroup会当子类的控件不需要获取焦点的时候才获取焦点
blocksDescendants:这个值表示ViewGroup会覆盖子类控件而直接获得焦点
四、listView关于CheckBox的选择错位问题。
方法一、可以放到一个HashMap<Integer, Boolean>中, 每次初始化的时候根据postion取出对应的boolean值,然后再进行checkbox的状态设置;也就是
HashMap<Integer, Boolean> state = new HashMap<Integer,Boolean>();
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if(isChecked)
{
state.put(position, isChecked);
}else{
state.remove(position);
}
}
在getView()方法里面: holder.cbox.setChecked(state.get(position)==null? false : true);
方法二、在entity类中加入了一个boolean值用于判断
五、listView的数据更新(增删改查)
以增加为例调用notifyDataSetChanged()方法
step1:在我们自定义的BaseAdapter中添加一个更新数据的方法:
step2:在activity中设置按钮的监听事件,来增加一条数据
对于更新数据每次调用notifyDataSetChanged(),这个方法实际上会把界面的item都重新绘制一遍,这样会影响UI的性能,如果数据量很大的时候,只要改变其中的一项就要重新绘制所有的额item,显然是不划算的,这时我们自定义下面的方法
android中与Adapter相关的控件----ListView的更多相关文章
- android中与Adapter相关的控件----GridView
GridView(网格视图)讲解 一.GridView(网格视图)这个是控件也是比较多,和listView的很多地方都是一样的,但是GridView可以显示多列,而listView只能显示一列,个人觉 ...
- android中与Adapter相关的控件----ViewFlipper
ViewFlipper(翻转视图) 一.ViewFlipper是一个多页面管理的控件,与ViewPager不同,ViewPager的是一页一页的的,而ViewFlipper则是一层一层的.图片轮播或者 ...
- android中与Adapter相关的控件----ExpandableListView
ExpandableListView(可折叠的列表) 一.ExpandableListView(可折叠的列表)和ListView有很多地方差不多的,使用也差不多,只是他们使用适配器不一样的,Expan ...
- android中与Adapter相关的控件----Spinner&AutoCompleteTextView
Spinner(列表选项框) & AutoCompleteTextView(自动完成文本框) 一.列表选项框核心属性 android:dropDownHorizontalOffset设置列表框 ...
- 【转】android中最好的瀑布流控件PinterestLikeAdapterView
[源地址]http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0919/1696.html 之前我们介绍过一个开源的瀑布流控件Stag ...
- 疯狂Android第二章:Adapter以及部分控件使用
第二章 重点:1.理解View以及各种布局的优缺点,适用场景. 2.熟练掌握adapter原理与用法. 3.熟悉其它控件的基本使用方法. /////////////////////////////// ...
- Android中EditText,Button等控件的设置
EditText可以使用:TextView.setEnabled(true)来设置为可编辑,其实很简单,写在这里以便以后自己查看. Button设置可用性:setVisibility(View.VIS ...
- [转]android中最好的瀑布流控件PinterestLikeAdapterView
PinterestLikeAdapterView 项目地址:https://github.com/GDG-Korea/PinterestLikeAdapterView 使用方法类似于ListView下 ...
- 解决Android中,禁止ScrollView内的控件改变之后自动滚动 - 转
问题: 最近在写一个程序界面,有一个scrollVIew,其中有一段内容是需要在线加载的. 当内容加载完成后,ScrollView中内容的长度会发生改变,这时ScrollView会自动下滚,如下图所示 ...
随机推荐
- ecshop里操作session与cookie
目录 操作session 操作cookie html模板里提交保存用用户名 php里 js里保存cookie js里读取cookie html模板里smart的保留变量 html模板里取session ...
- bootstrap-图片样式记录
//三种形状<img src=”img/pic.png” alt=”图片” class=”img-rounded” /><img src=”img/pic.png” alt=”图片” ...
- Codeforces Round #464 (Div. 2) C. Convenient For Everybody
C. Convenient For Everybody time limit per test2 seconds memory limit per test256 megabytes Problem ...
- 《鸟哥的Linux私房菜》学习笔记(6)——管道及IO重定向
一.标准I/O 标准输入:也可以叫STDIN,用0来标识,通常是键盘 标准输出:也 ...
- Logistic回归python实现小样例
假设现在有一些点,我们用一条直线对这些点进行拟合(该线称为最佳拟合直线),这个拟合过程就称作回归.利用Logistic回归进行分类的主要思想是:根据现有数据对分类边界线建立回归公式,依次进行分类.Lo ...
- IOS开发---菜鸟学习之路--(七)-自定义UITableViewCell
本篇将介绍如何自定义 UITableViewCell 首先选择新建文件 可以直接使用快捷键 COMMAND+n打开新建页面,然后选Objective-C class 然后选择继承之UITableVie ...
- phpMyAdmin 4.7.x CSRF
phpMyAdmin 4.7.x CSRF 场景:管理员登陆phpmyadmin之后,我试验了一下,发现只要是登陆session没有失效应该是都可以的, 利用,phpmyadmin可以通过get方式操 ...
- php获取当前操作系统类型
如何使用 php 获取当前操作系统类型呢? 严格来说这里分两种情况,一种情况是获取 服务器端 的操作系统类型,一种是获取 客户端 的操作系统类型. 下面将对如何使用php获取这两种情况下的操作系统类型 ...
- Python_字符串操作
name='hu\tqihang' #\t是TAB键 1.打印相关 print(name.center(50,'-')) #一共打印50个字符,不够的 ...
- mojoportal在IE10中点击ImageButton出错的处理方法
在ie10中,如果点击了mojoportal中的imagebutton,会出现错误,在ie10之前的浏览器,及ie10的兼容模式中及谷歌浏览器中都不会出现. 日志中 错误信息如下: 2013-09-2 ...