Android 快速开发系列 打造万能的ListView GridView 适配器
Posted Taserio-xie
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
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent" >
- <ListView
- android:id="@+id/id_lv_main"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent" />
- </RelativeLayout>
Item的布局文件:
[html] view plain copy
- <?xml version="1.0" encoding="utf-8"?>
- <TextView xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/id_tv_title"
- android:layout_width="match_parent"
- android:layout_height="50dp"
- android:background="#aa111111"
- android:gravity="center_vertical"
- android:paddingLeft="15dp"
- android:textColor="#ffffff"
- android:text="hello"
- android:textSize="20sp"
- android:textStyle="bold" >
- </TextView>
2、Adapter
[java] view plain copy
- package com.example.zhy_baseadapterhelper;
- 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.TextView;
- public class MyAdapter extends BaseAdapter
- private LayoutInflater mInflater;
- private Context mContext;
- private List<String> mDatas;
- public MyAdapter(Context context, List<String> mDatas)
- mInflater = LayoutInflater.from(context);
- this.mContext = context;
- this.mDatas = mDatas;
- @Override
- public int getCount()
- return mDatas.size();
- @Override
- public Object getItem(int position)
- return mDatas.get(position);
- @Override
- public long getItemId(int position)
- return position;
- @Override
- public View getView(int position, View convertView, ViewGroup parent)
- ViewHolder viewHolder = null;
- if (convertView == null)
- convertView = mInflater.inflate(R.layout.item_single_str, parent,
- false);
- viewHolder = new ViewHolder();
- viewHolder.mTextView = (TextView) convertView
- .findViewById(R.id.id_tv_title);
- convertView.setTag(viewHolder);
- else
- viewHolder = (ViewHolder) convertView.getTag();
- viewHolder.mTextView.setText(mDatas.get(position));
- return convertView;
- private finalAndroid 快速开发系列 打造万能的ListView GridView 适配器
Android 快速开发系列 打造万能的ListView GridView 适配器
Android 高速开发系列 打造万能的ListView GridView 适配器