自定义任意MyAdapter extends BaseAdapter(纯java)

适用于与Spinner、AutoCompleteTextView、Gallery、GridView、ListView等

 

主要完成下面两个函数

public int getCount() {}

public View getView(int position, View convertView, ViewGroup parent) {}

 

import java.util.*;

import android.content.Context;
import android.view.*;
import android.widget.*;
import android.widget.ImageView.ScaleType;

public class MyAdapter extends BaseAdapter{
	
	Context context=null;
	List<Map<String,Object>> list=null;
	
	MyAdapter(Context context){
		this.context=context;
		//数据初始化
		list=new ArrayList<Map<String,Object>>();
    	Map<String,Object> item;
    	item=new HashMap<String,Object>();
    	item.put("头像",R.drawable.icon);
    	item.put("姓名","三爷同学");
    	item.put("性别","男");
    	item.put("年龄", "15岁");
    	list.add(item);
    	item=new HashMap<String,Object>();
    	item.put("头像",R.drawable.icon);
    	item.put("姓名","木木同学");
    	item.put("性别","男");
    	item.put("年龄", "15岁");
    	list.add(item);
    	item=new HashMap<String,Object>();
    	item.put("头像",R.drawable.icon);
    	item.put("姓名","小四同学");
    	item.put("性别","女");
    	item.put("年龄", "14岁");
    	list.add(item);
	}
	public int getCount() {return list.size();}
	public Object getItem(int position) {return position;}
	public long getItemId(int position) {return position;}

	public View getView(int position, View convertView, ViewGroup parent) {
    	//头像
    	ImageView iv=new ImageView(context);
    	RelativeLayout.LayoutParams lp_iv=new RelativeLayout.LayoutParams(-2,-2);
    	lp_iv.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
    	iv.setLayoutParams(lp_iv);
    	iv.setScaleType(ScaleType.CENTER_INSIDE);
    	iv.setImageResource((Integer)((list.get(position)).get("头像")));
    	//姓名
    	TextView name=new TextView(context);
    	RelativeLayout.LayoutParams lp_tv=new RelativeLayout.LayoutParams(-2,-2);
    	lp_tv.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
    	name.setLayoutParams(lp_tv);
    	name.setTextSize(name.getTextSize()+10);
    	name.setText((String)(list.get(position).get("姓名")));
		//性别
    	TextView sex=new TextView(context);
    	RelativeLayout.LayoutParams lp_sex=new RelativeLayout.LayoutParams(-2,-2);
    	lp_sex.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
    	sex.setLayoutParams(lp_sex);
    	sex.setText((String)(list.get(position).get("性别")));
    	//年龄
    	TextView  age=new TextView(context);
    	RelativeLayout.LayoutParams lp_age=new RelativeLayout.LayoutParams(-2,-2);
    	lp_age.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
    	age.setLayoutParams(lp_age);
    	age.setText((String)(list.get(position).get("年龄")));
    	//相对布局1
    	RelativeLayout rl1=new RelativeLayout(context);
    	rl1.setLayoutParams(new RelativeLayout.LayoutParams(-1,-2));
    	rl1.addView(iv);
    	rl1.addView(name);
    	//相对布局2
    	RelativeLayout rl2=new RelativeLayout(context);
    	rl2.setLayoutParams(new LinearLayout.LayoutParams(-1,-2));
    	rl2.addView(sex);
    	rl2.addView(age);
    	//返回视图
		LinearLayout returnView=new LinearLayout(context);
    	returnView.setLayoutParams(new ListView.LayoutParams(-1,-2));//注意:ListView.LayoutParams
    	returnView.setOrientation(LinearLayout.VERTICAL);
    	returnView.addView(rl1);
    	returnView.addView(rl2);

		return returnView;
	}

}


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值