本例採用該類繼承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;
}
}
ListView應用------ListView控件顯示List集合中的數據,並對Item響應選擇事件(法一)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.