android 编辑自定义可编辑表格,listview实现漂亮的自定义表格实例.doc

listview实现漂亮的自定义表格实例

listview实现漂亮的自定义表格实例

篇一:Android学习笔记二十四之ListView列表视图二

Android学习笔记二十四之ListView列

表视图二

前面一篇我们介绍了常用的几种适配器的简单实现和ListView的简单使用,这一篇中,我们介绍一下ListView的优化和一些其它的问题。

ListView优化方法一

在ListView中,我们最常用的就是自定义Adapter,在我们自定义Adapter中,需要实现两个比较重要的方法getCount()和getView(),前者是负责计算ListView的总Item数,后者是生成Item,有多少个Item就会调用getView()方法多少次。getView()方法每次调用的时候都会重新inflate一个View出来返回去,但是对于ListView,只需要保留能够显示的最大的View的数目即可,而新的View可以复用消失的View。ListView给我们提供了可复用的View对象,在getView()方法里面,有一个参数View,这个就是可以复用的View对象。当参数View为null的时候,我们需要inflate一个View,当它不为null的时候,我们可以直接将他返回。例如:

@Override

public View getView(int i, View view, ViewGroup viewGroup) {

ViewHolder viewHolder;

//view为空的时候,inflate一个新的view

if (view == null) {

view = LayoutInflater.from(context).inflate(R.layout.item_base_adapter, null);viewHolder = new ViewHolder();

viewHolder.tv_base_adapter = (TextView) view.findViewById(R.id.tv_base_adapter);view.setTag(viewHolder);

} else {

viewHolder = (ViewHolder) view.getTag();

}

viewHolder.tv_base_adapter.setText(datas[i]);

//不为空,复用view

return view;

}

ListView优化方法二

上面介绍的是对View复用的优化,这样我们可以不必每一item都inflate一个新的view,可以通过复用,减小内存开销。下面我们介绍一个每一个AndroidAPP中都必不可少的操作,获取控件句柄,简单的说就是拿到id。在ListView中,我们inflate一个View,里面也有需要获取到组件id的,我们可以用ViewHolder来实现优化:

具体的思路就是,我们在ViewHolder中存放我们需要的控件,在View为null的时候,需要inflate一个新的view,同时我们还new一个ViewHolder类的对象,并将findviewById的结果赋值给ViewHolder中对应的成员变量,我们可以调用View中setTag()方法,将

ViewHolder和View绑定起来。当view不为null的时候,通过getTag()方法取出ViewHolder对象,这样就可以获得ViewHolder中的成员变量,也不再需要调用findViewById方法了。例如:

@Override

public View getView(int i, View view, ViewGroup viewGroup) {

ViewHolder viewHolder;

if (view == null) {

view = LayoutInflater.from(context).inflate(R.layout.item_base_adapter, null);//view为空,new一个ViewHolder对象

viewHolder = new ViewHolder();

//获取到ViewHolder对象中成员变量的id

viewHolder.tv_base_adapter = (TextView) view.findViewById(R.id.tv_base_adapter);//调用setTag方法,将ViewHolder绑定到中

view.setTag(viewHolder);

} else {

//view不为空,调用getTag方法,取出保存的ViewHolder对象

viewHolder = (ViewHolder) view.getTag

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值