ListView應用------ListView控件顯示List集合中的數據,並對Item響應選擇事件(法一)

本例採用該類繼承Activity+simpleAdapter實現的方式
這是天氣預報的一個截圖效果
1>  activity_main.xml文件
<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/LinearLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <LinearLayout 
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <ListView 
                android:id="@+id/listView1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>
        </LinearLayout>   
</LinearLayout>

2> items.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" 
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:paddingTop="1dp"
    android:paddingBottom="1dp">
     <ImageView
		android:id="@+id/img1"
		android:layout_height="60dip"
		android:layout_width="60dip"
		/>
	<ImageView 
		android:id="@+id/img2"
		android:layout_height="60dip"
		android:layout_width="60dip" 
	/>
	<TextView 
		android:id="@+id/TextView01"
		android:text=""
		android:layout_height="120dip"
		android:layout_width="120dip"
	/>
</LinearLayout>
/*******ListView.java************/
package com.zouxiaojia.tabtest;

import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TabHost;
import android.widget.TextView;
import android.widget.TextView.BufferType;

public class TabTest extends Activity {

	List<Map<String,Object>> listData;
	private ListView listView1;

	/*1這裏通過TabSpecs類創建Tab
	2.使用setIndicator方法設置tab的文字
	3.使用setContent設置tab的內容
	4.如果你使用TabActivity作爲你的Activity的基類,你不用調用TabHost.Setup()方法。
	*/@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		try{
			listView1=(ListView) this.findViewById(R.id.listView1);
			//獲取天氣預報獲取的對象的各種數據
			WebServiceHelper webservicetest = new WebServiceHelper();
			WeatherBean mybean=webservicetest.getWeatherByCity("武漢");
			listData=mybean.list;
			
			//將Tab1的界面視圖組件和獲得的處理過的數據綁定
			SimpleAdapter mAdapter=new SimpleAdapter(TabTest.this, listData, 
				R.layout.tab1_items,new String[]{"icon1","icon2","weatherDay"} , 
				new int[]{R.id.img1,R.id.img2,R.id.TextView01});
				listView1.setAdapter(mAdapter);
				//String[]中存放對應在listData中"icon1","icon2","weatherDay"三個參數的資源如R.drawable.a_1,string類型的天氣
				//int[] 對應Tab1_items.xml文件imageview和textview的ID.
		}catch(Exception ex){
			ex.printStackTrace();
			Log.d("EXCEPTION", ex.getMessage());
		}
	}
}
/****************************************8
/*listData是一個List<Map<String,Object>>list的數據,裏面有三組數據(今天,明天,後天),每組數據包括img1(天氣圖標一),img2(天氣圖標二),string(天氣情況).每一組數據對一ListView的一行數據,只有取出數據後裝載入map,再裝入simpleadapter將對應的resID關聯到R.id.img1,R.id.img2,R.id.textview.
實現思想如下:
Map<String,Object>map=new HashMap<String,Object>();
List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();
map.put("weatherDay",weatherToday);
/icon1_ID是對webservice獲取的soapObject對應圖片的字符串解析後得到的resID,便於在R.drawable中查找對應的圖片
//三天不同的天氣情況對應的讀圖片字符串都不同
map.put("icon1", icon1_ID);/
map.put("icon2", icon2_ID);
list.add(map);

map=new HashMap<String,Object>(); 
map.put("weatherDay", weatherTomorrow);
map.put("icon1", icon1_ID);
map.put("icon2", icon2_ID);
list.add(map);

map=new HashMap<String,Object>(); 
map.put("weatherDay",weatherToday);
map.put("icon1", icon1_ID);
map.put("icon2", icon2_ID);
list.add(map);
*/
******************************************************/
/*WeatherBean.java*/
package com.zouxiaojia.tabtest;

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

//定義該類存儲一些屬性
public class WeatherBean{
	public String CityName;
	public List<Map<String,Object>>list;
	public void setList(List<Map<String,Object>>list){
		this.list=list;
	}
	public String CityDescription;
	public void setCityDescription(String cityDescription){
		CityDescription=cityDescription;
	}
	public String LiveWeather;
	public void setCityName(String cityName){
		CityName=cityName;
	}
	public void setLiveWeather(String liveWeather){
		LiveWeather=liveWeather;
	}
}

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