ArrayAdapter将數組中的每個元素綁定到布局資源中定義的簡單View控件。
1.定義textview.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="wrap_content"
android:textSize="20sp" />
2.定義界面
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/main_menu"
android:textSize="30sp"/>
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:drawSelectorOnTop="false"/>
</LinearLayout>
3.在代碼中加載資料源及點選事件
package com.introtoandroid.advancedlayouts;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class MyListActivity extends ListActivity {
private String[] items= { "Basic Layout",
"List Layout",
"Grid View" };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu_layout);
setListAdapter(new ArrayAdapter<String>(this, R.layout.textview, items));
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Log.d (AdvancedLayoutsActivity.DEBUG_TAG, "pos: "+position + " , id: "+ id);
switch (position) {
case 0:
Intent intent = new Intent(this,
BasicLayoutActivity.class);
startActivity(intent);
break;
case 1:
TextView tv = (TextView) v;
tv.setText("Changed");
break;
case 2:
String original = (String) l
.getItemAtPosition(position);
Log.d(AdvancedLayoutsActivity.DEBUG_TAG, "original string: "
+ original);
((TextView) v).setText("Updated");
break;
}
}
}