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; } }
相关文章推荐
- ListView应用------ListView控件显示List集合中的数据,并对Item响应选择事件(法二)
- Android中的使用ListView控件显示List集合中的数据,并对Item响应选择事件(方法一)
- Android中的使用ListView控件显示List集合中的数据,并对Item响应选择事件(方法二)
- Android中ListView(gridview)的item中有button等子点击控件时不能响应点击事件的原因
- 数据绑定控件ListView事件ItemCreated的Bug
- Android开发中自定义ListView中存在ImageButton不响应ListItemClick单击事件详细d飞解决办法
- ListView加载list集合中数据从后到前显示问题
- [转]Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件
- 使用ASP.NET Atlas ItemView控件显示集合中的单个数据
- Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件
- 使用ASP.NET Atlas ItemView控件显示集合中的单个数据
- ListView同时响应itemclick事件和item控件的onClickListener时间的解决办法
- Repeater 的操作,数据的显示,绑定,动态取控件中的值和Repeater1_ItemCommand事件的相关用法
- listview的再次使用(两个集合中的数据集中显示并使用framelayout布局表示系统应用与非系统应用)
- VS2003 C#:重写键盘响应事件、动态创建控件、创建线程、在线程中使用委托在界面显示数据
- ListView集合中设置标记 setTag();方法带一个参数和两个参数的区别,以及设置标记时ViewHolder中的每一个属性控件都需要设置一次,否则在Item中每一个控件的点击事件中取出设置的标
- android中通过网络请求数据显示在Listview中,面对许多的item,如何给每个item设置点击事件以跳转到不同的activity
- Repeater 的操作,数据的显示,绑定,动态取控件中的值和Repeater1_ItemCommand事件的相关用法
- listview adapter 控件注册点击事件,点击一个item后有其他item的这个控件响应了事件
- Android布局设计之ExpandableList绑定XML数据构成级联、item布局页面的控件查找及配置child事件,自定义适配显示内容