显示联系人列表1_(demo)

来源:互联网 发布:必图拳馆怎么样知乎 编辑:程序博客网 时间:2024/05/09 07:00

项目描述:显示 用户头像、用户名、电话号码

如下图所示:





开发步骤

1.写一个 activity_main.xml 布局  添加 ListView 控件

2.写一个 contact_item.xml 布局  ImageView(头像)TextView(name)、TextView(number);

3.MainActivity.java

   3.1.声明 ListView

   3.2 数据源  List<Contact>data;

 创建一个实体类 Contact.java 并且添加属性  头像、名、号码

   3.3  声明一个 ContactAdapter

  ContactAdapter extends BaseAdapter

    数据源

模板

上下文对象

  3.4 创建数据对象,添加数据

  3.5 初始化 ListView

  3.6 创建 adapter

  3.6 为 ListView 配置 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="cn.sophia.listview.MainActivity">


   <ListView 

       android:id="@+id/listView"

       android:layout_width="match_parent"

       android:layout_height="match_parent"

       ></ListView>


</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="wrap_content">



    <RelativeLayout

      

        android:id="@+id/relativeLayout"

        android:layout_width="match_parent"

        android:layout_height="wrap_content">


        <ImageView

            android:id="@+id/imageView"

            android:layout_width="50dp"

            android:layout_height="50dp"

            android:src="@drawable/headimage01"/>


        <LinearLayout

            android:id="@+id/linearLayout"

            android:layout_width="match_parent"

            android:layout_height="50dp"

            android:layout_toRightOf="@+id/imageView"

            android:orientation="vertical">


            <TextView

                android:id="@+id/tvName"

                android:layout_width="match_parent"

                android:layout_height="wrap_content"

                android:layout_weight="1"

                android:gravity="bottom"

                android:paddingLeft="20dp"

                android:text="sohpia"/>


            <TextView

                android:id="@+id/tvNumber"

                android:layout_width="match_parent"

                android:layout_height="wrap_content"

                android:layout_weight="1"

                android:gravity="bottom"

                android:paddingLeft="20dp"

                android:text="10086"/>

        </LinearLayout>

    </RelativeLayout>


</RelativeLayout>


Contact.java

package cn.sophia.listview;


public class Contact {

public String name;

public String number;

public intimage;


public Contact(String name, String number,int image) {

super();

this.name = name;

this.number = number;

this.image = image;

}


}



ContactAdapte.java

package cn.sophia.listview;


import java.util.List;
import java.util.Map;


import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView.FindListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
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 = inflater.from(context);
}


// 创建一个 ViewHolder 类,用于封装模板中的各个空间
class ViewHolder {
TextView sortKey;
ImageView imageView;
TextView tvName;
TextView tvNumber;
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
Contact contact = data.get(position);


// 声明 ViewHolder;
ViewHolder holder;
// 判断 converView 是否为空
if (convertView == null) {
// 创建 ViewHolder
holder = new ViewHolder();
// 加载模板
convertView = inflater.inflate(R.layout.contact_item, null);
// 获得模板中的 控件
holder.imageView = (ImageView) convertView
.findViewById(R.id.imageView);
holder.tvName = (TextView) convertView.findViewById(R.id.tvName);
holder.tvNumber = (TextView) convertView
.findViewById(R.id.tvNumber);
convertView.setTag(holder);
// 放进 holder中
} else {
holder = (ViewHolder) convertView.getTag();
}
// 给 holder 设置数据
holder.imageView.setImageResource(contact.image);
holder.tvName.setText(contact.name);
holder.tvNumber.setText(contact.number);


return convertView;


}


@Override
public int getCount() {
return data.size();
}


@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}


@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}


}

 

MainActivity.java

package cn.sophia.listview;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.widget.ListView;


public class MainActivity extends Activity {
// 声明ListView
private ListView listView;
// 声明数据源
private List<Contact> data;
// 声明 adapter
private ContactAdapter adapter;


// 声明
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化控件
listView = (ListView) findViewById(R.id.listView);
data = new ArrayList<Contact>();
data.add(new Contact("sophia1", "11111111111", R.drawable.headimage01));
data.add(new Contact("aaaa", "11111111112", R.drawable.headimage02));
data.add(new Contact("aaaaa2", "11111111113", R.drawable.headimage03));
data.add(new Contact("cccc7", "11111111114", R.drawable.headimage04));
data.add(new Contact("ccccc8", "11111111115", R.drawable.headimage05));
data.add(new Contact("bbbbbb9", "11111111116", R.drawable.headimage06));
data.add(new Contact("ddddddd1", "11111111117", R.drawable.headimage07));
data.add(new Contact("fffffff", "11111111118", R.drawable.headimage08));
data.add(new Contact("fffffff", "11111111119", R.drawable.headimage09));
data.add(new Contact("ggggggg", "11111111110", R.drawable.headimage01));

// 创建adapter
adapter = new ContactAdapter(data, MainActivity.this);
// 为控件配置适配器
listView.setAdapter(adapter);
}


}


0 0