关于ListActivity的创建

来源:互联网 发布:种草 网络语言 英文 编辑:程序博客网 时间:2024/04/27 15:17

        ListActivity是一个默认布局为全屏列表的界面布局。

        不想使用ListActivity的默认布局时,可以在重写onCreate方法时,在方法内部调用setContentView方法来设置自己的布局方式。此时布局中必须包含一个ListView,它的id为"@+id/android:list"的。若还指定了一个id为"@+id/android:empty"的view,当ListView中没有数据要显示时,这个view就会被显示,同时 ListView会被隐藏。

<!-- id为@id/android:list的ListView为客户化的list布局,如果没有,则系统会调用默认的布局 --><ListView android:id="@+id/android:list" android:layout_width="match_parent"android:layout_height="match_parent"/><!-- 当ListView中没有数据时,id为@id/android:empty的view就会显示出来 --><TextView android:id="@+id/android:empty" android:layout_width="match_parent"android:layout_height="match_parent"/>

        而在Java代码中ListActivity的固定创建方法如下,同时定义了item的点击事件。

public class MainActivity extends ListActivity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);           // 菜单项数组        String[] items = {"One","Two"};// 将菜单项数组设置为ListView的列表项展示setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, items));getListView().setTextFilterEnabled(true);            }        // 响应菜单项的单击事件protected void onListItemClick(ListView l, View v, int position, long id) {Intent intent = null;switch (position) {case 0:intent = new Intent(MainActivity.this,TestOne.class);startActivity(intent);break;case 1:intent = new Intent(MainActivity.this,TestTwo.class);startActivity(intent);break;}}}


        如果是items的值是变动的,可以采用下面的这种方法:


public class ListActivityDemo extends ListActivity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);//定义一个List补全方法fillListList<String> items = fillList();//List列表监听器ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, items);setListAdapter(adapter);}private List<String> fillList() {List<String> items = new ArrayList<String>();items.add("One");items.add("Two");// items.clear();return items;}}


0 0
原创粉丝点击