您的位置:首页 > 其它

ListView应用------ListView控件显示List集合中的数据,并对Item响应选择事件(法一)

2013-03-07 20:44 615 查看
本例采用该类继承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;
}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐