顯示聯繫人列表1_(demo)

項目描述:顯示 用戶頭像、用戶名、電話號碼

如下圖所示:





開發步驟

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

<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="cn.sophia.listview.MainActivity" >


   <ListView 

       android:id="@+id/listView"

       android:layout_width="match_parent"

       android:layout_height="match_parent"

       ></ListView>


</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="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 int image;


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


}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章