BaseAdapter的优化

 1 package cct.commonadapter.bean;
 2 import android.content.Context;
 3 import android.view.LayoutInflater;
 4 import android.view.View;
 5 import android.view.ViewGroup;
 6 import android.widget.BaseAdapter;
 7 import android.widget.TextView;
 8 import java.util.List;
 9 import cct.commonadapter.R;
10
11 public class MyAdapter extends BaseAdapter {
12     private LayoutInflater inflater;
13     private List<Message> mdata;
14     public MyAdapter(Context context,List<Message> mdata){
15          inflater=LayoutInflater.from(context);
16         this.mdata=mdata;
17     }
18     @Override
19     public int getCount() {
20         return mdata.size();
21     }
22     @Override
23     public Object getItem(int position) {
24         return mdata.get(position);
25     }
26     @Override
27     public long getItemId(int position) {
28         return position;
29     }
30     @Override
31     public View getView(int position, View convertView, ViewGroup parent) {
32           //管理所有属性的一个类
33         ViewHolder holder;
34         if(convertView==null){
35           //创建一个视图对象
36             convertView=inflater.inflate(R.layout.item,parent,false);
37             holder=new ViewHolder();
38             holder.mtitle= (TextView) convertView.findViewById(R.id.mtitle);
39             holder.mdesc= (TextView) convertView.findViewById(R.id.mdesc);
40             holder.mtime= (TextView) convertView.findViewById(R.id.mtime);
41             holder.mphone= (TextView) convertView.findViewById(R.id.mphone);
42             //绑定ViewHolder对象
43             convertView.setTag(holder);
44         }
45         else {
46            //取出ViewHolder对象
47             holder = (ViewHolder) convertView.getTag();
48         }
49             Message ms = mdata.get(position);
50       /*设置TextView显示的内容,即我们存放在动态数组中的数据*/
51             holder.mtitle.setText(ms.getTitle());
52             holder.mdesc.setText(ms.getDesc());
53             holder.mtime.setText(ms.getTime());
54             holder.mphone.setText(ms.getPhone());
55            return convertView;
56     }
57     private  class ViewHolder
58     {
59         TextView mtitle;
60         TextView mdesc;
61         TextView mtime;
62         TextView mphone;
63     }
64 }

时间: 2024-10-13 02:43:21

BaseAdapter的优化的相关文章

BaseAdapter优化深入分析

BaseAdapter是一个数据适配器,将我们提供的数据格式化为ListView可以显示的数据,BaseAdapter的优化直接影响到ListView的显示效率. 我们都知道,ListView自带有回收机制,当一个Item滑出屏幕的时候,ListView会自动把这个ListView回收到缓冲区,当有一个Item滑入屏幕的时候,ListView会自动从缓冲区读取一个Item,并给它赋上值,然后显示出来,这便是ListView的回收机制,然而,如果你在BaseAdapter中没有做相应的优化,你的程

2.4.6 BaseAdapter优化

本节引言: 上一节中我们学习了如何来使用一个ListView以及自定义一个简单的BaseAdapter,我们从代码 中可以看出比较重要的两个方法:getCount()和getView(),界面上有多少列就会调用多少次getView, 这个时候可能看出一些端倪,每次都是新inflate一个View,都要进行这个XML的解析,这样会 很浪费资源,当然,几十列或者几百列的列表并不能体现什么问题,但假如更多或者布局更加复杂? 所以学习ListView的优化很重要,而本节针对的是BaseAdapter的优

Android基础入门教程——2.4.3 BaseAdapter优化

Android基础入门教程--2.4.3 BaseAdapter优化 标签(空格分隔): Android基础入门教程 本节引言: 上一节中我们学习了如何来使用一个ListView以及自定义一个简单的BaseAdapter,我们从代码 中可以看出比较重要的两个方法:getCount()和getView(),界面上有多少列就会调用多少次getView, 这个时候可能看出一些端倪,每次都是新inflate一个View,都要进行这个XML的解析,这样会 很浪费资源,当然,几十列或者几百列的列表并不能体现

BaseAdapter优化

本节引言: 上一节中我们学习了如何来使用一个ListView以及自定义一个简单的BaseAdapter,我们从代码 中可以看出比较重要的两个方法:getCount()和getView(),界面上有多少列就会调用多少次getView, 这个时候可能看出一些端倪,每次都是新inflate一个View,都要进行这个XML的解析,这样会 很浪费资源,当然,几十列或者几百列的列表并不能体现什么问题,但假如更多或者布局更加复杂? 所以学习ListView的优化很重要,而本节针对的是BaseAdapter的优

Android开发:ListView、AdapterView、RecyclerView全面解析

目录 AdapterView简介 AdapterView本身是一个抽象类,AdapterView及其子类的继承关系如下图: 特征: AdapterView继承自ViewGroup,本质是个容器 AdapterView可以包含多个"列表项",并将这多个列表项以合适的形式展示 AdapterView显示的列表项内容由Adapter提供 它派生的子类在用法上也基本相似,只是在显示上有一定区别,因此把他们也归为一类. 由AdapterView直接派生的三个类: AbsListView.AbsS

常见的适配器总结

学习适配器有一段时间了,现在对BaseAdapter的优化和要是项目中用到的适配其很多的话,完全可以建立一个SimpleBaseAdapter(继承自BaseAdapter),方便扩展. 主布局代码: 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 andro

Android ListView使用BaseAdapter与ListView的优化 (转至 http://www.open-open.com/lib/view/open1339485728006.html)

在ListView的使用中,有时候还需要在里面加入按钮等控件,实现单独的操作.也就是说,这个ListView不再只是展示数据,也不仅仅是这一行要来处理用户的操作,而是里面的控件要获得用户的焦点.读者可以试试用SimpleAdapter添加一个按钮到ListView的条目中,会发现可以添加,但是却无法获得焦点,点击操作被ListView的Item所覆盖.这时候最方便的方法就是使用灵活的适配器BaseAdapter了. ▲图4-35 BaseAdapter中的方法 使用BaseAdapter必须写一

Android ListView使用BaseAdapter与ListView的优化

在ListView的使用中,有时候还需要在里面加入按钮等控件,实现单独的操作.也就是说,这个ListView不再只是展示数据,也不仅仅是这一行要来处理用户的操作,而是里面的控件要获得用户的焦点.读者可以试试用SimpleAdapter添加一个按钮到ListView的条目中,会发现可以添加,但是却无法获得焦点,点击操作被ListView的Item所覆盖.这时候最方便的方法就是使用灵活的适配器BaseAdapter了. ▲图4-35 BaseAdapter中的方法 使用BaseAdapter必须写一

Android中的自定义Adapter(继承自BaseAdapter)——与系统Adapter的调用方法一致——含ViewHolder显示效率的优化(转)

Android中很多地方使用的是适配器(Adapter)机制,那我们就要好好把这个Adapter利用起来,并且用出自己的特色,来符合我们自行设计的需要喽~~~ 下面先上一个例子,是使用ViewHolder进行显示效率优化过的工程: package com.test.listviewsimpleadapter;    import java.util.ArrayList;  import java.util.HashMap;  import java.util.List;  import java