Android 基本控件的使用七(ListView+BaseAdapter)(demo)

来源:互联网 发布:源码包安装php 编辑:程序博客网 时间:2024/05/24 23:15

项目描述:利用 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

<RelativeLayoutxmlns: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

<?xmlversion="1.0"encoding="utf-8"?>

<RelativeLayoutxmlns: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<Contact> data;
// 模板
private LayoutInflater inflater;
// 需要传一个上下文对象
private Context context;

public ContactAdapter(List<Contact> data, Context context) {
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<Contact> data;
// 适配器
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<Contact>();
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);
}




}

0 0
原创粉丝点击