适配器的Java类 package com.app.adapter; import org.json.JSONArray; import org.json.JSONObject; import android.R.integer; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import an…
ListView的性能优化之convertView和viewHolder 2014-05-14 参考:http://www.cnblogs.com/xiaowenji/archive/2010/12/08/1900579.html 最近碰到的面试题中经常会碰到问”ListView的优化”问题.所以就拿自己之前写的微博客户端的程序做下优化.自己查了些资料,看了别人写的博客,得出结论,ListView优化大致从以下几个角度:1.复用已经生成的convertView:2.添加viewHolder类:3…
在安卓APP中LIstView这个控件可以说基本上是个APP就会用到,但是关于ListView除了需要了解其最基本的用法外,作为一个要做出高性能APP的程序员还需了解一些关于LIstView控件性能优化的基本知识,下面我通过代码一步一步优化的过程来让大家了解LIstView性能优化的相关知识. 一.重用converView:使用LIstView那么你肯定会重写Adapter类中的getView()方法,该方法定义如下: public View getChildView(int groupPosi…
SimpleAdapter介绍 SimpleAdapter是一个简单的适配器,可以将静态数据映射到XML文件中定义好的视图. 构造函数 public SimpleAdapter (Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to) 参数 context SimpleAdapter关联的View的运行环境 data 一个Map组成的List.在列表中的…
对于BaseAdapter相信大家都不陌生,都知道该怎样用.怎样显示数据.怎样尽可能的把每个item做的令自己满意.但问题来了:有些朋友会说我界面做的非常的漂亮,数据也显示的非常完美,但是问什么我的ListView会如此的卡呢? 呵呵,今天我们就来解决这个问题.(关于优化,和解决listview卡的问题) ListView的绘制机制:当系统开始好绘制ListView的时候,首先会调用getCount()方法(该方法的返回值实际是listview调用AdapterView的getCount()方法…
listview加载的核心是其adapter,本文通过减少adapter中创建.处理view的次数来提高listview加载的性能,总共分四个层次: 0.最原始的加载 1.利用convertView 2.利用ViewHolder 3.实现局部刷新 〇.最原始的加载 这里是不经任何优化的adapter,为了看起来方便,把listview的数据直接在构造函数里传给adapter了,代码如下: private class AdapterOptmL0 extends BaseAdapter { priv…
转载请注明出处 最近碰到的面试题中经常会碰到问"ListView的优化"问题.所以就拿自己之前写的微博客户端的程序做下优化. 自己查了些资料,看了别人写的博客,得出结论,ListView优化大致从以下几个角度: 1.复用已经生成的convertView: 2.添加viewHolder类: 3.缓存数据(图片缓存): 4.分页加载. 一.复用convertView 首先讲下ListView的原理:ListView中的每一个Item显示都需要Adapter调用一次getView的方法,这个…
1.在adapter中的getView方法中尽量少使用逻辑 不要在你的getView()中写过多的逻辑代码,我们能够将这些代码放在别的地方.比如: 优化前的getView(): @Override public View getView(int position, View convertView, ViewGroup paramViewGroup) { Object current_event = mObjects.get(position); ViewHolder holder = null…
@Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; Person person = persons.get(position); if (convertView != null) { viewHolder = (ViewHolder) convertView.getTag(); } else { convertView = View.inf…