ListActivity
使用custom view for screen layout
<?
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" >
< ListView android:id="@id/android:list"
android:layout_width ="fill_parent"
android:layout_height ="fill_parent"
android:layout_weight="1"
/>
< TextView android:id="@id/android:empty"
android:layout_width ="fill_parent"
android:layout_height ="wrap_content"
android:text ="No data"
android:textColor ="#ff0000"
/>
</ LinearLayout >
< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:orientation ="vertical"
android:layout_width ="fill_parent"
android:layout_height ="fill_parent" >
< ListView android:id="@id/android:list"
android:layout_width ="fill_parent"
android:layout_height ="fill_parent"
android:layout_weight="1"
/>
< TextView android:id="@id/android:empty"
android:layout_width ="fill_parent"
android:layout_height ="wrap_content"
android:text ="No data"
android:textColor ="#ff0000"
/>
</ LinearLayout >
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
//没有设置data source
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
//没有设置data source
}
Row Layout
- android.R.layout.simple_list_item_1 一行text
- android.R.layout.simple_list_item_2 一行title,一行text
- android.R.layout.simple_list_item_single_choice 单选按钮
- android.R.layout.simple_list_item_multiple_choice 多选按钮
- android.R.layout.simple_list_item_checked checkbox
<?
xml
version
="1.0"
encoding
="utf-8"
?>
< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:orientation ="horizontal"
android:layout_width ="fill_parent"
android:layout_height ="fill_parent" >
< ImageView android:id ="@+id/icon"
android:layout_width ="48dip"
android:layout_height ="48dip" />
< TextView android:id ="@+id/text"
android:layout_gravity ="center_vertical"
android:layout_width ="0dip"
android:layout_weight ="1"
android:layout_height ="wrap_content" />
</ LinearLayout >
< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:orientation ="horizontal"
android:layout_width ="fill_parent"
android:layout_height ="fill_parent" >
< ImageView android:id ="@+id/icon"
android:layout_width ="48dip"
android:layout_height ="48dip" />
< TextView android:id ="@+id/text"
android:layout_gravity ="center_vertical"
android:layout_width ="0dip"
android:layout_weight ="1"
android:layout_height ="wrap_content" />
</ LinearLayout >
绑定数据
public
void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//参考ArrayAdapter的构造函数
setListAdapter( new ArrayAdapter<String>( this,
android.R.layout.simple_list_item_1,
mStrings));
//在ListView上输入字母,就会自动筛选出以此内容开头的Item
getListView().setTextFilterEnabled( true);
}
private String[] mStrings = { "A", "Android", "机器人", "Google"};
super.onCreate(savedInstanceState);
//参考ArrayAdapter的构造函数
setListAdapter( new ArrayAdapter<String>( this,
android.R.layout.simple_list_item_1,
mStrings));
//在ListView上输入字母,就会自动筛选出以此内容开头的Item
getListView().setTextFilterEnabled( true);
}
private String[] mStrings = { "A", "Android", "机器人", "Google"};
这是Sample里面List3例子,通过读取通讯录android.provider.Contacts.Phones的资料,显示出来。
protected
void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get a cursor with all phones
Cursor c = getContentResolver().query(Phones.CONTENT_URI, null, null, null, null);
startManagingCursor(c);
// Map Cursor columns to views defined in simple_list_item_2.xml
ListAdapter adapter = new SimpleCursorAdapter( this,
android.R.layout.simple_list_item_2, c,
new String[] { Phones.NAME, Phones.NUMBER },
new int[] { android.R.id.text1, android.R.id.text2 });
setListAdapter(adapter);
}
super.onCreate(savedInstanceState);
// Get a cursor with all phones
Cursor c = getContentResolver().query(Phones.CONTENT_URI, null, null, null, null);
startManagingCursor(c);
// Map Cursor columns to views defined in simple_list_item_2.xml
ListAdapter adapter = new SimpleCursorAdapter( this,
android.R.layout.simple_list_item_2, c,
new String[] { Phones.NAME, Phones.NUMBER },
new int[] { android.R.id.text1, android.R.id.text2 });
setListAdapter(adapter);
}
public
void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//参考ArrayAdapter的构造函数
setListAdapter( new ArrayAdapter<String>( this,
android.R.layout.simple_list_item_single_choice,
mStrings));
final ListView listView = getListView();
listView.setItemsCanFocus( false);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); //设置单选模式
}
private String[] mStrings = { "A", "Android", "机器人", "Google"};
super.onCreate(savedInstanceState);
//参考ArrayAdapter的构造函数
setListAdapter( new ArrayAdapter<String>( this,
android.R.layout.simple_list_item_single_choice,
mStrings));
final ListView listView = getListView();
listView.setItemsCanFocus( false);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); //设置单选模式
}
private String[] mStrings = { "A", "Android", "机器人", "Google"};
还告诉了我们
ViewHolder类的作用: