Android—万能ListView适配器

时间:2022-10-20 21:06:10

ListView是开发中最常用的控件了,但是总是会写重复的代码,浪费时间又没有意义。

最近参考一些资料,发现一个万能ListView适配器,代码量少,节省时间,总结一下分享给大家。

首先有一个自定义的Adapter继承于BaseAdapter,下面是自定义的Adapter,精华在getView()方法中

package com.example.mylistview.util;

import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter; public abstract class CommonAdapter<T> extends BaseAdapter {
/**
* 上下文
*/
private Context mContext;
/**
* 实体类集合
*/
private List<T> mDatas;
private LayoutInflater mInflater;
/**
* 控件id
*/
private int mlayoutId; public CommonAdapter(Context context, List<T> datas, int layoutId) {
this.mContext = context;
this.mDatas = datas;
this.mlayoutId = layoutId;
mInflater = LayoutInflater.from(context);
} @Override
public int getCount() {
// TODO Auto-generated method stub
return mDatas.size();
} @Override
public T getItem(int arg0) {
// TODO Auto-generated method stub
return mDatas.get(arg0);
} @Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
} @Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
ViewHolder holder = ViewHolder.get(mContext, arg1, arg2, mlayoutId,
arg0);
convert(holder, getItem(arg0)); return holder.getConvertView();
} public abstract void convert(ViewHolder holder, T t);
}

以上的抽象方法convert(ViewHolder holder, T t);就相当于以前通用代码中的

viewHolder.mTextView = (TextView) convertView .findViewById(R.id.id_tv_title);

viewHolder.mTextView.setText(Bean.getName());

找到控件的id再去设施setText等重复的代码方法中的参数ViewHolder holder, T t    holder就相当于以前通用代码中的viewHolder,t就相当于一个自己定义的实体类Bean。

以上代码中getView()方法中有一个ViewHolder是需要自己声明的,以下是代码以及详细注释:

package com.example.mylistview.util;

import android.content.Context;
import android.graphics.Bitmap;
import android.renderscript.Type;
import android.util.SparseArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView; public class ViewHolder {
/**
* SparseArray类存放View集合
*/
private SparseArray<View> mViews;
/**
*
*/
private int mPosition;
/**
* 布局文件
*/
private View mConvertView; public View getConvertView() {
return mConvertView;
} public ViewHolder(Context context, ViewGroup parent, int layoutId,
int position) {
this.mViews = new SparseArray<View>();
this.mPosition = position;
this.mConvertView = LayoutInflater.from(context).inflate(layoutId,
parent, false);
this.mConvertView.setTag(this);
}
/**
* 拿到一个ViewHolder对象
* @param context
* @param convertView
* @param parent
* @param layoutId
* @param position
* @return
*/
public static ViewHolder get(Context context, View convertView,
ViewGroup parent, int layoutId, int position) {
if (null == convertView) {
return new ViewHolder(context, parent, layoutId, position);
} else {
ViewHolder holder = (ViewHolder) convertView.getTag();
holder.mPosition = position;
return holder;
}
}
/**
* 通过控件的id获取对应的控件,如果没有则加入views
* @param viewId
* @return
*/
public <T extends View> T getView(int viewId) {
View view = mViews.get(viewId); if (null == view) {
view = mConvertView.findViewById(viewId);
mViews.put(viewId, view);
} return (T) view;
}
/**
* 为TextView设置字符串
* @param viewId
* @param text
* @return
*/
public ViewHolder setText(int viewId, String text) {
TextView tv = getView(viewId);
tv.setText(text);
return this;
}
/**
* 为ImageView设置图片
*
* @param viewId
* @param drawableId
* @return
*/
public ViewHolder setImageResource(int viewId, int drawableId)
{
ImageView view = getView(viewId);
view.setImageResource(drawableId);
return this;
} public int getPosition()
{
return mPosition;
}
}

再写一个Adapter继承于万能适配器CommonAdapter,还是要写一个自己的Adapter,因为一个项目可能会有多个ListView,但是每个的item元素,布局都会有所不同的,这个泪用来区分不同的ListView与自己所对应的item.这个代码量较少完全可以写成内部类在Activity.java中.

package com.example.mylistview.adapter;

import java.util.List;

import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox; import com.example.mylistview.R;
import com.example.mylistview.domain.Bean;
import com.example.mylistview.util.CommonAdapter;
import com.example.mylistview.util.ViewHolder; public class MyAdapter extends CommonAdapter<Bean> { public MyAdapter(Context context, List<Bean> datas, int layoutId) {
super(context, datas, layoutId);
// TODO Auto-generated constructor stub
} @Override
public void convert(ViewHolder holder, final Bean bean) {
// TODO Auto-generated method stub
holder.setText(R.id.tv_title, bean.getTitle())
.setText(R.id.tv_desc, bean.getDesc())
.setText(R.id.tv_time, bean.getTime())
.setText(R.id.tv_phone, bean.getPhone());
/**
* 防止CheckBox混乱
*/
final CheckBox cBox = (CheckBox)(holder.getView(R.id.cb));
if (cBox != null)
{
cBox.setChecked(bean.isChecked()); cBox.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
bean.setChecked(cBox.isChecked());
}
});
}
} }

优化之后用适配器的时候就简单多了下面是实体类,item和MainActivity.java中的代码:

实体类:

package com.example.mylistview.domain;

public class Bean {
private String title;
private String desc;
private String time;
private String phone;
private boolean isChecked; public boolean isChecked() {
return isChecked;
} public void setChecked(boolean isChecked) {
this.isChecked = isChecked;
} /**
* @param title
* @param desc
* @param time
* @param phone
*/
public Bean(String title, String desc, String time, String phone) {
this.title = title;
this.desc = desc;
this.time = time;
this.phone = phone;
} public String getTitle() {
return title;
} public void setTitle(String title) {
this.title = title;
} public String getDesc() {
return desc;
} public void setDesc(String desc) {
this.desc = desc;
} public String getTime() {
return time;
} public void setTime(String time) {
this.time = time;
} public String getPhone() {
return phone;
} public void setPhone(String phone) {
this.phone = phone;
} }

MainActivity.java:

重点代码:

参数有上下文,集合,和自己对应的item就可以了
 adapter = new MyAdapter(this, mDatas, R.layout.item);
package com.example.mylistview.ui;

import java.util.ArrayList;
import java.util.List; import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView; import com.example.mylistview.R;
import com.example.mylistview.adapter.MyAdapter;
import com.example.mylistview.domain.Bean; public class MainActivity extends Activity {
private ListView listView;
private List<Bean> mDatas;
/**
* 适配器
*/
private MyAdapter adapter; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
listener();
} private void listener() {
// TODO Auto-generated method stub
listView.setOnItemClickListener(new OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
startActivity(new Intent(MainActivity.this, SecondActivity.class));
}
});
} private void initData() {
// TODO Auto-generated method stub
mDatas = new ArrayList<Bean>();
Bean bean = new Bean("Android新技能 Get",
"Android-打造万能的ListView和GridView适配器", "2015-08-05", "10086");
mDatas.add(bean);
bean = new Bean("捡到权志龙一个",
"在星巴克捡到权志龙一个", "2015-08-06", "10086");
mDatas.add(bean);
bean = new Bean("GetTOP一个",
"在韩国首尔捡到TOP一个", "2015-08-07", "10086");
mDatas.add(bean); adapter = new MyAdapter(this, mDatas, R.layout.item);
listView.setAdapter(adapter); } private void initView() {
// TODO Auto-generated method stub
listView = (ListView) findViewById(R.id.listView);
} }

item布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp" > <CheckBox
android:focusable="false"
android:id="@+id/cb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerInParent="true" /> <TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:singleLine="true"
android:text="Android新技能 Get" /> <TextView
android:id="@+id/tv_desc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/tv_title"
android:layout_marginTop="10dp"
android:layout_toLeftOf="@id/cb"
android:maxLines="2"
android:text="Android-打造万能的ListView和GridView适配器"
android:textColor="#898989" /> <TextView
android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tv_desc"
android:layout_marginTop="10dp"
android:text="2015-08-05"
android:textColor="#898989"
android:textSize="12sp" /> <TextView
android:id="@+id/tv_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@id/tv_desc"
android:layout_marginTop="10dp"
android:background="#20793D"
android:maxLines="1"
android:text="10086"
android:padding="4dp"
android:textColor="#FFF" /> </RelativeLayout>

效果图:

aaarticlea/png;base64,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*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" alt="" />

用这个去适配另一个不同的布局:

新布局的Adapter一样继承自己的万能adapter:CommonAdapter

package com.example.mylistview.adapter;

import java.util.List;
import java.util.Map; import android.content.Context; import com.example.mylistview.R;
import com.example.mylistview.util.CommonAdapter;
import com.example.mylistview.util.ViewHolder; public class SecondAdapter extends CommonAdapter<Map<String, String>> { public SecondAdapter(Context context, List<Map<String, String>> datas,
int layoutId) {
super(context, datas, layoutId);
// TODO Auto-generated constructor stub
} @Override
public void convert(ViewHolder holder, Map<String, String> t) {
// TODO Auto-generated method stub
holder.setText(R.id.tv_item2values, t.get("values"));
} }

Activity.java代码:

package com.example.mylistview.ui;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView; import com.example.mylistview.R;
import com.example.mylistview.adapter.MyAdapter;
import com.example.mylistview.adapter.SecondAdapter; public class SecondActivity extends Activity {
private ListView listView_second;
private SecondAdapter secondAdapter;
private List<Map<String, String>> lists = new ArrayList<Map<String, String>>(); @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
initView();
initData();
} private void initData() {
// TODO Auto-generated method stub
for (int i = 0; i < 4; i++) {
Map map = new HashMap<String, String>();
map.put("values", "条目" + i);
lists.add(map);
}
secondAdapter = new SecondAdapter(this, lists, R.layout.item2);
listView_second.setAdapter(secondAdapter);
} private void initView() {
// TODO Auto-generated method stub
listView_second = (ListView) findViewById(R.id.listView_second);
} }

item:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" > <TextView
android:id="@+id/tv_item2values"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="ffffff"
android:layout_margin="16dp"
android:gravity="center" /> </LinearLayout>

效果图:

aaarticlea/png;base64,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" alt="" />

备忘,希望能给大家带来帮助。