项目描述:利用 ListView+BaseAdapter 来实现 如下图的显示
开发步骤:
1.在activity_main.xml 中添加 ListView 控件
2.在 contact_item.xml 添加布局(每一项的显示布局)
3.创建一个 Contact 实体类(属性:name number)
4.创建一个ContactAdapter 继承 BaseAdapter
4.1 声明数据源
4.2 声明模板
4.3 创建一个构造方法
4.4 重写两个方法 getCount() 和 getView();;
别的方法放后面暂时不写
5. 在MainActivity.java 中
5.1 声明控件
ListView
数据源
adapter
5.2 初始化控件
listView
5.3 创建数据
5.4 创建 adapter
5.5 为控件设置 adapter
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<ListView
android:id="@+id/lv_contacts"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
RelativeLayout>
contact_item.xml
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="match_parent"
android:padding="10dp" >
<TextView
android:id="@+id/tv_contact_item_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:text="yyl"
android:textColor="#000000"
android:textSize="16sp" />
<TextView
android:id="@+id/tv_contact_item_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_contact_item_name"
android:text="152********"
android:textColor="#555555"
android:textSize="14sp" />
RelativeLayout>
Contact.java
package com.example.android_listview_baseadapter;
public class Contact {
public String name;
public String number;
public Contact(String name, String number) {
super();
this.name = name;
this.number = number;
}
}
ContactAdapter.java
package com.example.android_listview_baseadapter;
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.TextureView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class ContactAdapter extends BaseAdapter{
// 数据源
private List
// 模板
private LayoutInflater inflater;
// 需要传一个上下文对象
private Context context;
public ContactAdapter(List
super();
this.data = data;
inflater = LayoutInflater.from(context);
}
// 表示数据源的长度,即有多少条数据
@Override
public int getCount() {
return data.size();
}
//
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// 得到 Position 所对应的位置
Contact contact = data.get(position);
// 加载模板
View view = inflater.inflate(R.layout.contact_item, null);
// 获取模板中的控件对象
TextView tvName = (TextView) view.findViewById(R.id.tv_contact_item_name);
TextView tvNumber = (TextView) view.findViewById(R.id.tv_contact_item_number);
// 将数据添加到控件中
tvName.setText(contact.name);
tvNumber.setText(contact.number);
return view;
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int arg0) {
return 0;
}
}
MainActivity.java
package com.example.android_listview_baseadapter;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.widget.BaseAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
// 声明控件
private ListView listView;
// 数据源
private List
// 适配器
private ContactAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化控件
listView = (ListView) findViewById(R.id.lv_contacts);
// 创建数据
data = new ArrayList
data.add(new Contact("sophia0", "111111111110"));
data.add(new Contact("sophia1", "111111111111"));
data.add(new Contact("sophia2", "111111111112"));
data.add(new Contact("sophia3", "111111111113"));
data.add(new Contact("sophia4", "111111111114"));
data.add(new Contact("sophia5", "111111111115"));
data.add(new Contact("sophia6", "111111111116"));
data.add(new Contact("sophia7", "111111111117"));
// 创建 adapter
adapter = new ContactAdapter(data, this);
// 配置适配器
listView.setAdapter(adapter);
}
}