ListActivity
ListActivity是一个专门显示ListView的Activity类,它内置了一个ListView对象,只要我们设置了数据源,就会自动地显示出来。
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //使用内置的布局 //setContentView(R.layout.activity_main); ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new String[] {"测试数据0","测试数据1","测试数据3"}); setListAdapter(adapter); }
运行结果为:
我们同样可以使用自定义布局,但是有一个要求,布局内必须包含一个ListView控件,且该控件的id必须为@android:id/list
<ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <TextView android:id="@id/android:empty" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="No data" />
可通过getListView();方法获取该ListView对象
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView listView; //当然也可通过下面这个id获取到ListView对象 // listView=(ListView) findViewById(android.R.id.list); listView = getListView(); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new String[] { "测试数据0", "测试数据1", "测试数据3" }); listView.setAdapter(adapter); }
运行结果和上面一样
ListActivity内还内置了一个id为android:empty的TextView对象,作用是当ListView没有数据时会显示该TextView