BaseAdapter的使用
来源:互联网 发布:gulp 压缩js css 编辑:程序博客网 时间:2024/05/21 09:35
package com.example.baseadaptertest;import java.util.List;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;/** * ViewHolder 优化BaseAdapter的思路 * 1、创建Item类,用于封装数据 * 2、在构造方法中初始化用于映射的数据List * 3、创建ViewHolder,创建布局映射关系 * 4、判断convertView是否为null,若为空,则设置tag,否则通过tag取出ViewHolder * 5、给ViewHolder中的控件赋值设置数据。 */public class MyAdapter extends BaseAdapter { private List<Item> mList; private LayoutInflater inflater; /* * 内部类 */ class ViewHolder { public ImageView imgView; public TextView title; public TextView content; } /** * 这样就把数据源和适配器关联起来了 * @param itemList */ public MyAdapter(List<Item> itemList , Context context) { // TODO Auto-generated constructor stub mList = itemList; inflater = LayoutInflater.from(context); } @Override public int getCount() { // TODO Auto-generated method stub return mList.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return mList.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } /** * 逗比式,么有利用到listview的缓存特征 */ /*public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View view = inflater.inflate(R.layout.lv_item, null); ImageView imgView = (ImageView) view.findViewById(R.id.img); TextView title = (TextView) view.findViewById(R.id.title); TextView content = (TextView) view.findViewById(R.id.content); Item item = (Item) getItem(position); imgView.setImageResource(item.itemImageID); title.setText(item.itemTitle); content.setText(item.itemContent); return view; } */ /**普通式 * 如果没有缓存才创建新的View,但是findviewbyid事很费资源的,当视图树很复杂的时候,消耗的时间是很客观地 */ /* @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub if(convertView == null){ convertView = inflater.inflate(R.layout.lv_item, null);//如果没有缓存才创建新的View,但是findviewbyid事很费资源的,当视图树很复杂的时候,消耗的时间是很客观地 } ImageView imgView = (ImageView) convertView.findViewById(R.id.img); TextView title = (TextView) convertView.findViewById(R.id.title); TextView content = (TextView) convertView.findViewById(R.id.content); Item item = (Item) getItem(position); imgView.setImageResource(item.itemImageID); title.setText(item.itemTitle); content.setText(item.itemContent); return convertView; }*/ @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ViewHolder viewHolder = new ViewHolder(); if(convertView == null){ viewHolder = new ViewHolder(); convertView = inflater.inflate(R.layout.lv_item, null); /** * 用ViewHolder来储存convertView的空的子View,最后关联到convertView */ ImageView imgView = (ImageView) convertView.findViewById(R.id.img); viewHolder.imgView = imgView; TextView title = (TextView) convertView.findViewById(R.id.title); viewHolder.title = title; TextView content = (TextView) convertView.findViewById(R.id.content); viewHolder.content = content; convertView.setTag(viewHolder);//关联一下 } else{ viewHolder = (ViewHolder) convertView.getTag();//通过关联,赋值一下 } Item item = (Item) getItem(position); /** * 通过给viewHolder.xxx赋值的方式,来给convertView赋值。 * 和普通模式相比,少了每次都要xxxView = convertView.findViewById(xxx),但多了储存空间,空间换时间 */ viewHolder.imgView.setImageResource(item.itemImageID); viewHolder.title.setText(item.itemTitle); viewHolder.content.setText(item.itemContent); return convertView; }}
0 0
- BaseAdapter的使用
- BaseAdapter的使用
- BaseAdapter的使用
- BaseAdapter的使用
- ListView -- BaseAdapter的使用
- BaseAdapter的使用
- 关于BaseAdapter的使用
- BaseAdapter的使用
- BaseAdapter的使用
- BaseAdapter的使用
- listview的使用----BaseAdapter
- BaseAdapter的使用
- Android BaseAdapter的使用
- BaseAdapter的使用
- 关于BaseAdapter的使用
- BaseAdapter 的使用
- 优化使用的BaseAdapter
- ListView+BaseAdapter的使用
- 关于Fragment中返回键(onBackPressed)的处理
- theano卷积神经网络-场景
- Win7上安装ROR环境
- 1036. 跟奥巴马一起编程(15)
- messagesource读取properties
- BaseAdapter的使用
- jquery 停留几秒后显示,离开隐藏
- ppp = 2.4.4 is needed by pptpd-1.3.4-2.rhel5.x86_64的解决办法及原因
- 黑马程序员---基础加强:类加载器
- 简单词法分析程序
- [转]用pyenv 和 virtualenv 搭建单机多版本python 虚拟开发环境
- 完全平方数的个数
- poj 2778
- Sublime Text 3 解决中文乱码问题