Android ListActivity應(yīng)用技巧全解
今天為大家?guī)淼氖怯嘘P(guān)Android ListActivity的相關(guān)內(nèi)容的介紹。我們可以從這篇文章中介紹的內(nèi)容詳細(xì)的對(duì)這一方面的知識(shí)進(jìn)行一個(gè)全面的認(rèn)識(shí)。首先看看android.app包里的幾個(gè)類。首先是這個(gè)在平臺(tái)自的例子中被廣泛使用的Android ListActivity。這個(gè)類其實(shí)就是一個(gè)含有一個(gè)ListView組件的Activity類。也就是說,如果我們直接在一個(gè)普通的Activity中自己加一個(gè)ListView也是完全可以取代這個(gè)Android ListActivity的,只是它更方便而已,方便到什么程度呢?來做個(gè)例子瞧瞧。
- public class HelloTwoB extends ListActivity
- ...{
- public void onCreate(Bundle icicle) ...{
- super.onCreate(icicle);
- setTheme(android.R.style.Theme_Dark);
- setContentView(R.layout.mainb);
- List< String> items = fillArray();
- ArrayAdapter< String> adapter = new ArrayAdapter< String>
(this,R.layout.list_row,items);- this.setListAdapter(adapter);
- }
- private List< String> fillArray()
- ...{
- List< String> items = new ArrayList< String>();
- items.add("日曜日");
- items.add("月曜日");
- items.add("火曜日");
- items.add("水曜日");
- items.add("木曜日");
- items.add("金曜日");
- items.add("土曜日");
- return items;
- }
- @Override
- protected void onListItemClick(ListView l,
View v, int position, long id)- ...{
- TextView txt = (TextView)this.findViewById(R.id.text);
- txt.setText("あすは "+l.getSelectedItem().toString()+"です。");
- }
- }
的確可以簡(jiǎn)單到只需準(zhǔn)備一個(gè)List對(duì)象并借助Adapter就可以構(gòu)造出一個(gè)列表。重載onListItemClick方法可以響應(yīng)選擇事件,利用***個(gè)參數(shù)可以訪問到這個(gè)ListView實(shí)例以得到選中的條目信息。這里有一點(diǎn)要說明的,就是如果更簡(jiǎn)單的話,其實(shí)連那個(gè)setContentView都可以不要了,Android也會(huì)自動(dòng)幫我們構(gòu)造出一個(gè)全屏的列表。但是本例中我們需要一個(gè)TextView來顯示選中的條目,所以我們需要一個(gè)layout.mainb描述一下這個(gè)列表窗口。
- < ?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"
- >
- < TextView id="@+id/text"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text=""
- />
- < ListView id="@id/android:list"
- android:layout_width="fill_parent"
- android:layout_height="0dip"
- android:layout_weight="1"
- android:drawSelectorOnTop="false"
- />
- < /LinearLayout>
在Android ListActivity操作中需要注意的是那個(gè)ListView的ID,是系統(tǒng)自定義的android:list,不是我們隨便取的,否則系統(tǒng)會(huì)說找不到它想要的listview了。然后,在這個(gè)listview之外,我們又增加了一個(gè)TextView,用來顯示選中的條目。
再來說說這里用到的ArrayAdapter,它的構(gòu)造函數(shù)中第二個(gè)參數(shù)是一個(gè)資源ID,ArrayAdapter的API文檔中說是要求用一個(gè)包含 TextView的layout文件,平臺(tái)用它來顯示每個(gè)選擇條目的樣式,這里的取值是R.layout.list_row,所以,我們還有一個(gè)list_row.xml文件來描述這個(gè)布局,相當(dāng)簡(jiǎn)單。
- < ?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"
- >
- < TextView id="@+id/item"
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
- < TextView id="@+id/item2"
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
- < /LinearLayout>
從ArrayAdapter上溯到BaseAdapter,發(fā)現(xiàn)還有幾個(gè)同源的Adapter也應(yīng)該可以使用,象SimpleAdapter和CursorAdapter,還是做個(gè)例子來實(shí)驗(yàn)一下吧。
Android ListActivity的相關(guān)內(nèi)容就為大家介紹到這里。
【編輯推薦】