您的位置:首页 > 其它

自定义适配器应用

2014-09-16 23:01 106 查看
package com.jky.customadapter;

import java.util.ArrayList;

import java.util.List;

import android.app.Activity;

import android.graphics.Color;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ImageView;

import android.widget.ListView;

import android.widget.SimpleAdapter;

import android.widget.TextView;

public class MainActivity extends Activity {

private ListView lv;

private List<User> data;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);



lv = (ListView) findViewById(R.id.lv);



//数据集合

data = new ArrayList<User>();

data.add(new User(R.drawable.face1, "刘备", "13567899876"));

data.add(new User(R.drawable.face2, "张飞", "13567899876"));

data.add(new User(R.drawable.face3, "关羽", "13567899876"));

data.add(new User(R.drawable.face4, "曹操", "13567899876"));

data.add(new User(R.drawable.face5, "孙权", "13567899876"));

data.add(new User(R.drawable.face6, "赵云", "13567899876"));







//绑定适配器到ListView上



MyAdapter adapter = new MyAdapter();

lv.setAdapter(adapter);



}

//自定义适配器

class MyAdapter extends BaseAdapter{

private LayoutInflater inflater;

public MyAdapter() {

//布局加载器

inflater = LayoutInflater.from(MainActivity.this);

}



//有多少条数据

//先问,有多少条数据要显示?

@Override

public int getCount() {

return data.size();



}

//根据position拿到对应的数据

@Override

public Object getItem(int position) {

return data.get(position);



}

//根据position拿到对应的数据的id

//没有id就返回position

@Override

public long getItemId(int position) {

return position;



}



//总共有六条记录要显示

//每显示一条,就调用getView一次

//position(0-5)

@Override

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

//我们要显示的条目就是item.xml中定义好的样子



//1.加载item.xml中定义的布局

//root 问layout的父亲是谁

View layout = inflater.inflate(R.layout.item, null);



//单数行为灰色,双数行为黑色

if (position % 2 == 0) {

layout.setBackgroundColor(Color.GRAY);

}else{

layout.setBackgroundColor(Color.BLACK);

}



//2.设置布局中控件的数据

//根据position的值获取对应的数据

User user = data.get(position);

//头像

ImageView iv_face = (ImageView) layout.findViewById(R.id.iv_face);

iv_face.setImageResource(user.face);



//姓名

TextView tv_name = (TextView) layout.findViewById(R.id.tv_name);

tv_name.setText(user.name);



//号码

TextView tv_number = (TextView) layout.findViewById(R.id.tv_number);

tv_number.setText(user.number);

return layout;

}



}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: