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;
}
}
}
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;
}
}
}