</pre><pre name="code" class="java"><span style="font-family: Arial, Helvetica, sans-serif;">package com.example.testlist; </span>
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends Activity implements OnItemClickListener{
//分别定义标题名中的标题名、价格、地址等信息
private String[] info_Names={"南航CZ1","南航CZ2","南航CZ3","南航CZ4","南航CZ5"};
private String[] info_Prices={"500元","600元","400元","300元","700元"};
private String[] info_Date={"火星","水星","木星","月球","金星"};
private int[] info_img ={R.drawable.nanhang,R.drawable.boat,
R.drawable.nanhang,R.drawable.p1,R.drawable.hangkong};
//定义一个ListView
private ListView mListView;
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化控件
mListView =(ListView)findViewById(R.id.listView);
adapter = new MyAdapter(this, getData());
//自定义Adapter
mListView.setAdapter(adapter);
mListView.setOnItemClickListener(this);
}
private List<Map<String, Object>> getData() {
//定义一个ArrayList数组,存放适配的数据
ArrayList<Map<String,Object>> mInfos= new ArrayList<Map<String,Object>>();
for(int i=0;i<info_Names.length;i++){
Map<String,Object> item = new HashMap<String,Object>();
item.put("img", info_img[i]);
item.put("name", info_Names[i]);
item.put("price", info_Prices[i]);
item.put("date", info_Date[i]);
mInfos.add(item);
}
return mInfos;
}
//listView的点击事件
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Map<String, Object> map = (Map<String, Object>) mListView.getItemAtPosition(position);
//获取item中的标题名
Toast.makeText(this, map.get("name").toString(), Toast.LENGTH_SHORT).show();
}
}
MyAdapter.java
package com.example.testlist;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class MyAdapter extends BaseAdapter {
private Context context; //运行上下文
private List<Map<String, Object>> listItems; //联系人信息集合
private LayoutInflater listContainer; //视图容器
private ViewHolder holder;
public class ViewHolder{ //自定义控件集合
public ImageView img;
public TextView name;
public TextView price;
public TextView date;
}
public MyAdapter(Activity context, List<Map<String, Object>> listItems) {
this.context = context;
listContainer = LayoutInflater.from(context); //创建视图容器并设置上下文
this.listItems = listItems;
}
public int getCount() {
return listItems.size();
}
public Object getItem(int position) {
return listItems.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
holder = new ViewHolder();
//获取list_item布局文件的视图
convertView = listContainer.inflate(R.layout.item, null);
//获取控件对象
holder.img = (ImageView)convertView.findViewById(R.id.info_img);
holder.name = (TextView)convertView.findViewById(R.id.info_name);
holder.price = (TextView)convertView.findViewById(R.id.info_price);
holder.date = (TextView)convertView.findViewById(R.id.info_date);
//设置控件集到convertView
convertView.setTag(holder);
}else {
holder = (ViewHolder)convertView.getTag();
}
Map<String, Object> appInfo = listItems.get(position);
if(appInfo!=null){
//设置航班信息
holder.img.setBackgroundResource((Integer) appInfo.get("img"));
holder.name.setText((String) appInfo.get("name"));
holder.price.setText((String) appInfo.get("price"));
holder.date.setText((String) appInfo.get("date"));
}
return convertView;
}
}
**item.xml**
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/info_img"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginLeft="3dp"
android:background="@drawable/ic_launcher"/>
<TextView
android:id="@+id/info_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/info_img"
android:layout_alignParentTop="true"
android:textColor="#000"
android:text="南航CZ365"/>
<TextView
android:id="@+id/info_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginRight="48dp"
android:text="2014/11/5" />
<TextView
android:id="@+id/info_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/info_img"
android:layout_alignLeft="@+id/info_name"
android:text="广州---吉隆坡" />
</RelativeLayout>
</RelativeLayout>
**activity_main**
<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" >
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="#F7F7F7"
android:cacheColorHint="#00000000"
android:descendantFocusability="afterDescendants"
android:divider="#ffaeb1b4"
android:dividerHeight="1dp" >
</ListView>
</RelativeLayout>
运行效果图