使用ListView和arrayAdapter布局,是ListView布局中最為簡單的一種,首先我們會建立一個組件用來顯示資料,例如main.xml
<?xml version="1.0" encoding="utf-8"?> <!-- 主介面本身就是一個顯示組件 --> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="10dp" android:textSize="16sp" > </TextView>
Activity代碼如下
package cn.com.android.grid; import android.app.ListActivity; import android.os.Bundle; import android.widget.ArrayAdapter; public class listViewTest extends ListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String data[] = getData(); ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, R.layout.main, data); this.setListAdapter(arrayAdapter);// ArrayAdapter 繼承自baseAdapter,baseAdapter又繼承自ListAdapter } /** * @author chenzheng_java * @description 擷取一個數組列表 */ private String[] getData(){ String[] data = new String[100]; for (int i = 0; i < 100; i++) { data[i] = "清單項目" + i; } return data; } }
如果這裡activity不想繼承ListActivity,那麼我們可以這樣編寫
package cn.com.android.grid; import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; public class ListViewTest2 extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ListView listView = new ListView(this); listView.setAdapter(new ArrayAdapter<String>(this,R.layout.main,getData())); setContentView(listView); } /** * @author chenzheng_java * @description 擷取一個數組列表 */ private String[] getData(){ String[] data = new String[100]; for (int i = 0; i < 100; i++) { data[i] = "清單項目" + i; } return data; } }
廢話連篇:
兩種實現辦法寫的代碼差距很大,有很多初學者可能很暈。不過不要緊,我們一起看下ListActivity到底是怎麼實現的。
代碼摘錄如下
public class ListActivity extends Activity { /** * This field should be made private, so it is hidden from the SDK. * {@hide} */ protected ListAdapter mAdapter; /** * This field should be made private, so it is hidden from the SDK. * {@hide} */ protected ListView mList;
我們看到了,實際上當我們繼承ListActivity時,實際上裡面已經有一個從ListActivity中繼承的listview了,所以千萬別以為差距很大,本質上,實現的步驟是一摸一樣的。你可以認為,android給你提供了一個免費的工具類。沒什麼稀奇的。
步驟上,還是三大步:
第一步:準備布局檔案main.xml
第二步:擷取資料 getData()
第三步:綁定資料來源setListAdapter();