ListView是安卓開發中常用的組件之一,它的作用是在一個垂直的列表中展現出所需的項目。
接下來,我們看一下ListView的實現方法:
第一種是常見的在XML中定義然後在activity中使用findViewById來獲取的方式(這個相當基礎瞭,直接代碼)
XML:
Activity:
package com.example.listview1; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends Activity { ListView listView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.list1); List data = new ArrayList(); data.add("測試1"); data.add("測試2"); data.add("測試3"); data.add("測試4"); ArrayAdapter adpter = new ArrayAdapter(this, android.R.layout.simple_list_item_1,data); listView.setAdapter(adpter); } }
第二種是使用activity繼承ListActivity來實現
XML:
Activity:
package com.example.listview2; import java.util.ArrayList; import java.util.List; import android.app.ListActivity; import android.os.Bundle; import android.widget.ArrayAdapter; public class MainActivity extends ListActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); List data = new ArrayList(); data.add("測試1"); data.add("測試2"); data.add("測試3"); data.add("測試4"); ArrayAdapter adpter = new ArrayAdapter(this, android.R.layout.simple_list_item_1,data); setListAdapter(adpter); } }
在第二種的Activity中,我們沒有聲明ListView,而是讓Activy繼承瞭ListActivity,使用setContentView綁定瞭ListView的樣式,使用setListAdpter綁定數據。
註意,我們在第二種寫法的XML中,ListView的id寫成瞭android:id=”@android:id/list” 這是一個固定的寫法,這樣寫程序就能找到對ListView樣式的定義。
我們可以看到,上面兩種寫法表現出來的樣式是一樣的。
vcD4KPHA+ICAgICAgICDU2rXatv7W1tC0t6jW0KOsztLU2sXk1sPOxLz+1tC7udC0wcvPwsPm1eK2zsXk1sOhozwvcD4KPHA+PC9wPgo8cHJlIGNsYXNzPQ==”brush:java;”> 這個TextView的id我寫成瞭@android:id/empty 這樣寫的作用是,當我的ListView內容為空時,會默認顯示這個TextView。
在API中是這麼描述的:Optionally, your custom view can contain another view object of any type
to display when the list view is empty. This “empty list” notifier must have an id “android:id/empty”. Note that when an empty view is present, the list view will be hidden when there is no data to display.
我把第二個Activity中的為ArrayList添加數據的那幾句代碼註釋掉後,運行效果如下:
以上就是ListView的基本用法。關於ListView中數據綁定的問題,將在下一篇中介紹。