2025-04-23

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中數據綁定的問題,將在下一篇中介紹。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *