WangQingHua123 发表于 2013-1-30 01:07:06

Android学习之-ListView组件

ListView : 它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示
listView三要素:
a). 展示数据的item
b). 数据源
c). 适配器(adapter):将数据展示到item的中介
 
listView的类型 有三种:
a). ArrayListAdapter: 展示简单的字符串, 一个子项只能展示一行.
b). SimpleAdapter: 自定义适配器 , 能够随意展示自己想要的布局结构.
c). SimpleCursorAdapter :展示从SQLite读取的数据.把从游标得到的数据进行列表显示, 并能报指定的列映射到对应的TextView中.
例子:
运行结果:
http://dl.iteye.com/upload/picture/pic/87121/3fc5e4fe-80ba-3a16-a87a-a4a676e9d1f5.png
代码:
public class ListViewTest extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {            super.onCreate(savedInstanceState);                        setContentView(R.layout.main);          //绑定XML中的ListView,作为Item的容器          ListView list = (ListView) findViewById(R.id.myListView);                  //生成动态数组,并且转载数据          ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();          for(int i=0;i<30;i++)          {            HashMap<String, String> map = new HashMap<String, String>();            map.put("ItemTitle", "This is Title.....");            map.put("ItemText", "This is text.....");            mylist.add(map);          }          //生成适配器,数组===》ListItem          SimpleAdapter mSchedule = new SimpleAdapter(this, //没什么解释                                                      mylist,//数据来源                                                       R.layout.list_view_test,//ListItem的XML实现                                                                                                            //动态数组与ListItem对应的子项                                                            new String[] {"ItemTitle", "ItemText"},                                                                                                             //ListItem的XML文件里面的两个TextView ID                                                      new int[] {R.id.itemTitle,R.id.itemText});          //添加并且显示          list.setAdapter(mSchedule);      }} 
 

main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    ><ListView android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/myListView"></ListView></LinearLayout> 
list_view_test.xml

 
<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:paddingLeft="10dip"android:paddingBottom="3dip"android:id="@+id/myListItem">    <TextView android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/itemTitle"android:textSize="30dip"></TextView>    <TextView android:layout_width="fill_parent"android:layout_height="wrap_content"android:id="@+id/itemText"android:textSize="10dip"></TextView></LinearLayout> 
 
listview的实现原理:1. 在listview开始绘制的时候调用getCount()方法获取listview子项的个数
2. 根据返回的长度, 调用getView()逐一绘制每一行.
 
 
原文转载:
 http://blog.csdn.net/sam_zhang1984/archive/2011/03/19/6261818.aspx
http://blog.csdn.net/hellogv/archive/2009/09/11/4542668.aspx

 
 
页: [1]
查看完整版本: Android学习之-ListView组件