1. 程式人生 > 實用技巧 >Android入門第六篇之ListView (一)

Android入門第六篇之ListView (一)

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

ListView是一個經常用到的控制元件,ListView裡面的每個子項Item可以使一個字串,也可以是一個組合控制元件。先說說ListView的實現:

1.準備ListView要顯示的資料

2.使用一維或多維動態陣列儲存資料;

2.構建介面卡簡單地來說,介面卡就是Item陣列動態陣列有多少元素就生成多少個Item;

3.把介面卡新增到ListView,並顯示出來。


接下來,看看本文程式碼所實現的ListView:

1

接下來,就開始UI的XML程式碼:

main.xml程式碼如下,很簡單,也不需要多做解釋了:

[xhtml]view plaincopyprint?

  1. <?xmlversion="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. <ListViewandroid:layout_width="wrap_content"

  8. android:layout_height="wrap_content"

  9. android:id="@+id/MyListView">

  10. </ListView>

  11. </LinearLayout>

my_listitem.xml的程式碼如下,my_listitem.xml用於設計ListView的Item:

[xhtml]view plaincopyprint?

  1. <?xmlversion="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的原始碼:

[java]view plaincopyprint?

  1. publicvoidonCreate(BundlesavedInstanceState){

  2. super.onCreate(savedInstanceState);

  3. setContentView(R.layout.main);

  4. //繫結XML中的ListView,作為Item的容器

  5. ListViewlist=(ListView)findViewById(R.id.MyListView);

  6. //生成動態陣列,並且轉載資料

  7. ArrayList<HashMap<String,String>>mylist=newArrayList<HashMap<String,String>>();

  8. for(inti=0;i<30;i++)

  9. {

  10. HashMap<String,String>map=newHashMap<String,String>();

  11. map.put("ItemTitle","ThisisTitle.....");

  12. map.put("ItemText","Thisistext.....");

  13. mylist.add(map);

  14. }

  15. //生成介面卡,陣列===》ListItem

  16. SimpleAdaptermSchedule=newSimpleAdapter(this,//沒什麼解釋

  17. mylist,//資料來源

  18. R.layout.my_listitem,//ListItem的XML實現

  19. //動態陣列與ListItem對應的子項

  20. newString[]{"ItemTitle","ItemText"},

  21. //ListItem的XML檔案裡面的兩個TextViewID

  22. newint[]{R.id.ItemTitle,R.id.ItemText});

  23. //新增並且顯示

  24. list.setAdapter(mSchedule);

  25. }


轉載於:https://my.oschina.net/airship/blog/366156