2010.10.11总结(ListView,广播)

本文介绍了在Android开发中如何优化ListView,包括布局缓存和控件缓存的实现,以及广播的基础知识,包括标准广播和有序广播的注册与发送。还分享了在处理布局XML文件时的常见错误及其解决方案。
摘要由CSDN通过智能技术生成

今天学习在编写布局文件的时候遇到Element type "LinearLayout" must be followed by either attribute specifications, ">" or "/>".这个问题,google了一下才发现是自己忘记在<LinearLayout 后面添加>了,确切的说应该是把EditText和Button两个放在了<LinearLayout 里面了,导致的问题出错。而不是在<LinearLayout> </LinearLayout>中间。

上午学习了ListView,感觉比之前的要复杂一些。为了优化效率,提高运行的速度,需要对布局和获取控件进行缓存,达到优化目的。

1.布局缓存。convertView

在getView()方法中还有一个convertView参数,这个参数用于将之前加载好的布局进行缓存

if(convertView==null){
			view=LayoutInflater.from(getContext()).inflate(resourceId, null);
else{
			view=convertView;
}

在getView()方法中进行判断,当convertView为空,用LayoutInflater加载布局,不为空时,直接对convertView进行重用,提升ListView效率。

2.控件缓存。ViewHolder

ViewHolder需要自己创建一个类,可以对View的findViewById()方法进行优化,还是以上面的为例。

View view;
		ViewHolder viewHolder;
		if(convertView==null){
			view=LayoutInflater.from(getContext()).inflate(resourceId, null);
			viewHolder=new ViewHolder();
			viewHolder.fruitImage=(ImageView) view.findViewById(R.id.fruit_image);
			viewHolder.fruitName=(TextView) view.findViewById(R.id.fruit_name);
			view.setTag(viewHolder);
		}else{
			view=convertView;
			viewHolder=(com.example.listviewtest.ViewHolder) view.getTag();
		}
<
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值