android listview和gridview,android中listview和gridview万能适配器

第一步:布局文件和上一节课布局文件一样,在这里就不再阐述

第二步,新建com.example.zlianxi.utils,新建一个ViewHolder:

​package

com.example.zlianxi.utils;

import android.content.Context;

import android.graphics.Bitmap;

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 {

private SparseArray mViews;

private int mPosition;

private View mConView;

public View getmConView() {

return mConView;

}

public T getView(int viewld) {

View view = mViews.get(viewld);

if (view == null) {

view = mConView.findViewById(viewld);

mViews.put(viewld, view);

}

return (T) view;

}

public ViewHolder(Context context, int layoutld, ViewGroup

parent,

int position) {

this.mPosition = position;

this.mViews = new SparseArray();

mConView = LayoutInflater.from(context)

.inflate(layoutld, parent, false);

mConView.setTag(this);

}

public static ViewHolder get(Context context, View

converView,

int layoutld, ViewGroup parent, int position) {

if (converView == null) {

return new ViewHolder(context, layoutld, parent, position);

} else {

ViewHolder holder = (ViewHolder) converView.getTag();

holder.mPosition = position;

return holder;

}

}

public ViewHolder setText(int viewld, String text) {

TextView tv = getView(viewld);

tv.setText(text);

return this;

}

public ViewHolder setImageResource(int viewld, int imgld) {

ImageView lv = getView(viewld);

lv.setImageResource(imgld);

return this;

}

public ViewHolder setImageBitmap(int viewld, Bitmap bitmap)

{

ImageView lv = getView(viewld);

lv.setImageBitmap(bitmap);

return this;

}

}

第三步:新建一个commoadater:

package com.example.zlianxi.utils;

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 extends BaseAdapter

{

protected Context mcontext;

protected List mDates;

private int layoutld;

private LayoutInflater layoutInflater;

public CommonAdapter(Context context, List Dates,int layoutld)

{

this.mcontext = context;

layoutInflater = LayoutInflater.from(context);

this.mDates = Dates;

this.layoutld=layoutld;

}

@Override

public int getCount() {

// TODO Auto-generated method stub

return mDates.size();

}

@Override

public T getItem(int position) {

// TODO Auto-generated method stub

return mDates.get(position);

}

@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

return position;

}

@Override

public View getView(int position, View convertView, ViewGroup

parent) {

ViewHolder holder = ViewHolder.get(mcontext, convertView,

layoutld, parent, position);

convert(holder, getItem(position));

return holder.getmConView();

}

public abstract void convert(ViewHolder holder, T t);

}

第四步:以上两步已完成适配器的通用内容,接下来实现这两个方法,新建tongyongadapter完成适配器的内容:

package com.example.zlianxi;

import java.util.List;

import android.content.Context;

import com.example.zlianxi.Bean.Bean;

import com.example.zlianxi.utils.CommonAdapter;

import com.example.zlianxi.utils.ViewHolder;

public class tongyongadapter extends CommonAdapter

{

public tongyongadapter(Context context, List date,int layoutld)

{

super(context, date,layoutld);

}

@Override

public void convert(ViewHolder holder, Bean bean) {

holder.setText(R.id.iv_title, bean.getTitle())

.setText(R.id.iv_time, bean.getTime())

.setText(R.id.iv_desc, bean.getDesc())

.setText(R.id.iv_phone, bean.getPhone());

}

}

​第五步:接下来在mainactivity中完成剩下的内容:

package com.example.zlianxi;

import java.util.ArrayList;

import java.util.List;

import android.app.Activity;

import android.os.Bundle;

import android.widget.ListView;

import com.example.zlianxi.Bean.Bean;

public class MainActivity extends Activity {

private ListView mlistView;

private List beans = new ArrayList();

// Myadapter myadapter;

tongyongadapter myadapter;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initDate();

initView();

}

private void initView() {

mlistView = (ListView) findViewById(R.id.listview);

mlistView.setAdapter(myadapter);

}

private void initDate() {

Bean bean = new Bean("android获得get新技能",

"打造android中listview/gridview适配器", "2016-10-04", "10086");

beans.add(bean);

bean = new Bean("android获得get新技能1",

"打造android中listview/gridview适配器",

"2016-10-04", "10086");

beans.add(bean);

bean = new Bean("android获得get新技能2",

"打造android中listview/gridview适配器",

"2016-10-04", "10086");

beans.add(bean);

bean = new Bean("android获得get新技能3",

"打造android中listview/gridview适配器",

"2016-10-04", "10086");

beans.add(bean);

myadapter = new tongyongadapter(MainActivity.this,

beans,R.layout.listview_item);

}

}

注:Bean内容为:

package com.example.zlianxi.Bean;

//自己需要的listView或gridview中的内容

public class Bean {

private String title;

private String desc;

private String time;

private String phone;

public Bean() {

}

public Bean(String title, String desc, String time, String

phone) {

super();

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;

}

}

以上就完成万能适配器​所有内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值