Listview之优化BaseAdapter中的getView中的contentView
BaseAdapter中getView中改动的地方:
@Override
public View getView(int position, View contentView, ViewGroup arg2) {
TextView textview;
ImageView imageView;
//判断contentView是否为空,为空重新创建
if(contentView == null){
contentView =layoutInflater.inflate(R.layout.list_item, null);
textview=(TextView)contentView.findViewById(R.id.textview);
textview.setText((CharSequence) list.get(position).get("name"));
imageView=(ImageView)contentView.findViewById(R.id.imageview);
imageView.setImageResource((Integer) list.get(position).get("pictrue"));
}else{
//contentView不为空,返回已经存在的contentView
return contentView;
}
获取数据源中改动的地方:
MainActivity.java中的getData();
private List<Map<String, Object>> getData() {
// TODO Auto-generated method stub
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", "图1");
map.put("pictrue", R.drawable.tu1);
list.add(map);
map = new HashMap<String, Object>();
map.put("name", "图2");
map.put("pictrue", R.drawable.tu2);
list.add(map);
map = new HashMap<String, Object>();
map.put("name", "图3");
map.put("pictrue", R.drawable.tu3);
list.add(map);
map = new HashMap<String, Object>();
map.put("name", "图4");
map.put("pictrue", R.drawable.tu4);
list.add(map);
map = new HashMap<String, Object>();
map.put("name", "图5");
map.put("pictrue", R.drawable.tu5);
list.add(map);
map = new HashMap<String, Object>();
map.put("name", "图6");
map.put("pictrue", R.drawable.tu6);
list.add(map);
map = new HashMap<String, Object>();
map.put("name", "图7");
map.put("pictrue", R.drawable.tu7);
list.add(map);
map = new HashMap<String, Object>();
map.put("name", "图8");
map.put("pictrue", R.drawable.tu8);
list.add(map);
return list;
}
Listview之优化BaseAdapter中的getView中的contentView的更多相关文章
- Listview性能优化
首先,虽然大家都知道,还是提一下,利用好 convertView 来重用 View,切忌每次 getView() 都新建.ListView 的核心原理就是重用 View.ListView 中有一个回收 ...
- ListView getView中放置多个item和getItemViewType的用法
ListView 和 Adapter 的基础 工作原理: ListView 针对List中每个item,要求 adapter “给我一个视图” (getView). 一个新的视图被返回并显示 如果我们 ...
- ListView中的item中的Onclick事件的优化
ListView的Adapter的优化布局载入器的载入次数最典型的使用方法是使用convertView进行优化,让convertView当做布局载入器的载体,也就是.重用 convertView 用以 ...
- BaseAdapter以及对ListView的优化(转)
背景 对于ListView.GridView.Gallery.Spinner等等,它是它们的适配器,直接继承自接口类Adapter的,使用BaseAdapter时需要重写很多方法,其中最重要的当属ge ...
- Android ListView使用BaseAdapter与ListView的优化 (转至 http://www.open-open.com/lib/view/open1339485728006.html)
在ListView的使用中,有时候还需要在里面加入按钮等控件,实现单独的操作.也就是说,这个ListView不再只是展示数据,也不仅仅是这一行要来处理用户的操作,而是里面的控件要获得用户的焦点.读者可 ...
- Android -- 重写BaseAdapter以及对ListView的优化
背景 对于ListView.GridView.Gallery.Spinner等等,它是它们的适配器,直接继承自接口类Adapter的,使用BaseAdapter时需要重写很多方法,其中最重要的当属ge ...
- Activity中与ListActivity中使用listview区别
Activity中与ListActivity中使用listview区别 一.Activity中与ListActivity中使用listview区别(本身没多大区别,只是ListActivity在lis ...
- hive优化之——控制hive任务中的map数和reduce数
一. 控制hive任务中的map数: 1. 通常情况下,作业会通过input的目录产生一个或者多个map任务.主要的决定因素有: input的文件总个数,input的文件大小,集群设置的文 ...
- Android之ListView性能优化——一行代码绑定数据——万能适配器
如下图,加入现在有一个这样的需求图,你会怎么做?作为一个初学者,之前我都是直接用SimpleAdapter结合一个Item的布局来实现的,感觉这样实现起来很方便(基本上一行代码就可以实现),而且也没有 ...
随机推荐
- 显示win7桌面网络.reg
显示win7桌面网络.reg Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\C ...
- Unity的HTC VIVE SDK研究(手柄按键功能的研究,比较详细)
http://blog.csdn.net/ystistheking/article/details/51553237 想交流的朋友我们可以微博互粉,我的微博黑石铸造厂厂长 ,缺粉丝啊 .....求粉求 ...
- 关于as中的事件与回调函数
对于Observer模式, 在as中object(被观察者)既可以用事件(event),也可以用回调函数(caller)来通知观察者(observer).那在实际的开发中到底应该选择用event还是用 ...
- 由函数clock想到的
今天介绍一下clock这个函数的使用,它是C标准库的一部分,声明在头文件<time.h>中,返回处理器使用的时间值,函数声明为: clock_t clock(void); 这个函数看起来很 ...
- redis.conf详解
# Redis示例配置文件 # 注意单位问题:当需要设置内存大小的时候,可以使用类似1k.5GB.4M这样的常见格式: # # 1k => bytes # 1kb => bytes # 1 ...
- WordPress怎么在页面上添加目录
要实现的如下功能,在页面上添加一个文章目录: 步骤: 1)在wordpress中,在Posts----Categories中建立目录, 2) 3)add new post,指定post所属的cat ...
- java作业——整数相加
设计思路:由于命令行参数都是字符串,所以解决问题的关键在于字符串和整数之间的转化.首先定义数组,让所要相加的数组成一个数组,然后实现数组的字符串转化为整数,最后相加输出就行了. 程序流程图: 源代码: ...
- Entity Framework 复杂类型
为了说明什么是复杂属性,先举一个例子. public class CompanyAddress { public int ID { get; set; } public string Compan ...
- [转]连续创建多个Oracle触发器失败,单个创建才成功的解决方法
连续创建多个Oracle触发器失败,单个创建才成功的解决方法 1.当我连续执行创建多个触发器时,总是报编译通过,但存在警告或错误.如下: create or replace trigger t ...
- 使用URL读取网络资源
import java.io.InputStream;import java.io.OutputStream;import java.net.URL; import android.os.Bundle ...