当前位置: 代码迷 >> Android >> Android入门第六篇之ListView (1)
  详细解决方案

Android入门第六篇之ListView (1)

热度:107   发布时间:2016-05-01 16:16:59.0
Android入门第六篇之ListView (一)

ListView是一个经常用到的控件,ListView里面的每个子项Item可以使一个字符串,也可以是一个组合控件。先说说ListView的实现:

1.准备ListView要显示的数据?

2.使用?一维或多维?动态数组?保存数据;

2.构建适配器??简单地来说,?适配器就是?Item数组??动态数组?有多少元素就生成多少个Item;

3.把?适配器?添加到ListView,并显示出来。


接下来,看看本文代码所实现的ListView:

1

?

接下来,就开始UI的XML代码:

main.xml代码如下,很简单,也不需要多做解释了:

?

view plaincopy to clipboardprint?
  1. <?xml?version="1.0"?encoding="utf-8"?>??
  2. <LinearLayout???
  3. ????????android:id="@+id/LinearLayout01"???
  4. ????????android:layout_width="fill_parent"???
  5. ????????android:layout_height="fill_parent"???
  6. ????????xmlns:android="http://schemas.android.com/apk/res/android">??
  7. ??????????
  8. ????????<ListView?android:layout_width="wrap_content"???
  9. ??????????????????android:layout_height="wrap_content"???
  10. ??????????????????android:id="@+id/MyListView">??
  11. ????????</ListView>??
  12. </LinearLayout>??

?

?

?

my_listitem.xml的代码如下,my_listitem.xml用于设计ListView的Item:

?

view plaincopy to clipboardprint?
  1. <?xml?version="1.0"?encoding="utf-8"?>??
  2. <LinearLayout???
  3. ????????android:layout_width="fill_parent"???
  4. ????????xmlns:android="http://schemas.android.com/apk/res/android"???
  5. ????????android:orientation="vertical"??
  6. ????????android:layout_height="wrap_content"???
  7. ????????android:id="@+id/MyListItem"???
  8. ????????android:paddingBottom="3dip"???
  9. ????????android:paddingLeft="10dip">??
  10. ????????<TextView???
  11. ????????????????android:layout_height="wrap_content"???
  12. ????????????????android:layout_width="fill_parent"???
  13. ????????????????android:id="@+id/ItemTitle"???
  14. ????????????????android:textSize="30dip">??
  15. ????????</TextView>??
  16. ????????<TextView???
  17. ????????????????android:layout_height="wrap_content"???
  18. ????????????????android:layout_width="fill_parent"???
  19. ????????????????android:id="@+id/ItemText">??
  20. ????????</TextView>??
  21. </LinearLayout>??

?

解释一下,里面用到的一些属性:

1.paddingBottom="3dip",Layout往底部留出3个像素的空白区域

2.paddingLeft="10dip",Layout往左边留出10个像素的空白区域

3.textSize="30dip",TextView的字体为30个像素那么大。

?

最后就是JAVA的源代码:

?

view plaincopy to clipboardprint?
  1. public?void?onCreate(Bundle?savedInstanceState)?{??
  2. ????super.onCreate(savedInstanceState);??
  3. ????setContentView(R.layout.main);??
  4. ????//绑定XML中的ListView,作为Item的容器??
  5. ????ListView?list?=?(ListView)?findViewById(R.id.MyListView);??
  6. ??????
  7. ????//生成动态数组,并且转载数据??
  8. ????ArrayList<HashMap<String,?String>>?mylist?=?new?ArrayList<HashMap<String,?String>>();??
  9. ????for(int?i=0;i<30;i++)??
  10. ????{??
  11. ????????HashMap<String,?String>?map?=?new?HashMap<String,?String>();??
  12. ????????map.put("ItemTitle",?"This?is?Title.....");??
  13. ????????map.put("ItemText",?"This?is?text.....");??
  14. ????????mylist.add(map);??
  15. ????}??
  16. ????//生成适配器,数组===》ListItem??
  17. ????SimpleAdapter?mSchedule?=?new?SimpleAdapter(this,?//没什么解释??
  相关解决方案