Android 快速开发系列 打造万能的ListView GridView 适配器

Posted 阿七不会写代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 快速开发系列 打造万能的ListView GridView 适配器相关的知识,希望对你有一定的参考价值。

出处:http://blog.csdn.net/lmj623565791/article/details/38902805 

1、概述

相信做Android开发的写得最多的就是ListView,GridView的适配器吧,记得以前开发一同事开发项目,一个项目下来基本就一直在写ListView的Adapter都快吐了~~~对于Adapter一般都继承BaseAdapter复写几个方法,getView里面使用ViewHolder模式,其实大部分的代码基本都是类似的。

本篇博客为快速开发系列的第一篇,将一步一步带您封装出一个通用的Adapter。

2、常见的例子

首先看一个最常见的案例,大家一目十行的扫一眼

1、布局文件

主布局文件:

[html]  view plain  copy  
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:tools="http://schemas.android.com/tools"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent" >  
  5.   
  6.     <ListView  
  7.         android:id="@+id/id_lv_main"  
  8.         android:layout_width="fill_parent"  
  9.         android:layout_height="fill_parent" />  
  10.   
  11. </RelativeLayout>  

Item的布局文件:

[html]  view plain  copy  
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <TextView xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:id="@+id/id_tv_title"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="50dp"  
  6.     android:background="#aa111111"  
  7.     android:gravity="center_vertical"  
  8.     android:paddingLeft="15dp"  
  9.     android:textColor="#ffffff"  
  10.     android:text="hello"  
  11.     android:textSize="20sp"  
  12.     android:textStyle="bold" >  
  13.   
  14. </TextView>  

2、Adapter

[java]  view plain  copy  
  1. package com.example.zhy_baseadapterhelper;  
  2.   
  3. import java.util.List;  
  4.   
  5. import android.content.Context;  
  6. import android.view.LayoutInflater;  
  7. import android.view.View;  
  8. import android.view.ViewGroup;  
  9. import android.widget.BaseAdapter;  
  10. import android.widget.TextView;  
  11.   
  12. public class MyAdapter extends BaseAdapter  
  13.   
  14.     private LayoutInflater mInflater;  
  15.     private Context mContext;  
  16.     private List<String> mDatas;  
  17.   
  18.     public MyAdapter(Context context, List<String> mDatas)  
  19.       
  20.         mInflater = LayoutInflater.from(context);  
  21.         this.mContext = context;  
  22.         this.mDatas = mDatas;  
  23.       
  24.   
  25.     @Override  
  26.     public int getCount()  
  27.       
  28.         return mDatas.size();  
  29.       
  30.   
  31.     @Override  
  32.     public Object getItem(int position)  
  33.       
  34.         return mDatas.get(position);  
  35.       
  36.   
  37.     @Override  
  38.     public long getItemId(int position)  
  39.       
  40.         return position;  
  41.       
  42.   
  43.     @Override  
  44.     public View getView(int position, View convertView, ViewGroup parent)  
  45.       
  46.         ViewHolder viewHolder = null;  
  47.         if (convertView == null)  
  48.           
  49.             convertView = mInflater.inflate(R.layout.item_single_str, parent,  
  50.                     false);  
  51.             viewHolder = new ViewHolder();  
  52.             viewHolder.mTextView = (TextView) convertView  
  53.                     .findViewById(R.id.id_tv_title);  
  54.             convertView.setTag(viewHolder);  
  55.          else  
  56.           
  57.             viewHolder = (ViewHolder) convertView.getTag();  
  58.           
  59.         viewHolder.mTextView.setText(mDatas.get(position));  
  60.         return convertView;  
  61.       
  62.   
  63.     private final 以上是关于Android 快速开发系列 打造万能的ListView GridView 适配器的主要内容,如果未能解决你的问题,请参考以下文章

    Android 快速开发系列 打造万能的ListView GridView 适配器

    Android 快速开发系列 打造万能的ListView GridView 适配器

    Android基础——快速开发之打造万能适配器

    Android 高速开发系列 打造万能的ListView GridView 适配器

    android 打造ListView和Gridview万能adapter适配器(附源码)

    Android视频框架 Vitamio 打造自己的万能播放器