常用Android开发组件之列表类组件

Android提供了两种比较常用的列表类组件,分别是ListView组件和Spinner组件,其中,ListView组件表示列表选择组件,而Spinner组件表示下拉列表选择组件,下下面将我对列表组件的一些学习与使用的心得进行一些总结,如果有不正确的地方希望指出。
ListView组件
列表视图是Android中最常用的一种视图组件,它以垂直列表的形式列出需要显示的列表选项。两种方法实现,一是直接使用ListView组件创建,二是继承ListView实现。
一,直接使用ListView组件创建:
Step1,在布局文件中添加ListView组件,通过数组资源为其设置列表项:

<ListView  android:id="@+id/list1" android:entries="@array/strArray" android:layout_width="match_parent" android:layout_height="wrap_content">
</ListView>

Step2,在上面代码中,使用了名为strArray的数组资源,这需要在string.xml资源文件夹中添加名为strArray的字符串数组:

    <string-array name="strArray">
        <item>星球大战</item>
        <item>神探夏洛克</item>
        <item>老炮</item>
        <item>唐人街探案</item>
    </string-array>

Adapter来为ListView指定需要显示的列表项,可以分为以下两个步骤。
Step1,创建Adapter对象。对于纯文字的列表项,通常使用ArrayAdpater对象。创建ArrayAdpater对象通常可以有两种情况,一种是通过数组资源文件创建,另一种是在Java文件中使用字符串数组创建,他们创建方式分别如下:
通过数组资源文件创建:

 ArrayAdapter<CharSequence>adapter=ArrayAdapter.createFromResource(
               this,R.array.strArray,R.layout.abc_activity_chooser_view_list_item
        );

在Java文件中使用字符串数组创建:

 String[] strArray2=new String[]{"星球大战","神探夏洛克","老炮","唐人街探案"};
        ArrayAdapter<String>adapter1=new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_checked,strArray2);

在创建ArrayAdapter对象时,需要指定列表的外观形式,常用的有以下几种:
android.R.layout.simple_list_item_checked:每个列表项都有一个已勾选的列表项
android.R.layout.simple_list_item_1:每个列表项都是一个普通文本
android.R.layout.simple_list_item_2:每个列表项都是一个普通文本(字体较大)
android.R.layout.simple_list_item_multiple_choice:每个列表项都是代多选框的文本
android.R.layout.simple_list_item_single_choice: 每个列表项都是代单选框的文本
Step2,将创建的适配器对象与ListView相关联:

listView.setAdapter(adapter);

二,继承ListView实现
如果程序窗口仅仅需要显示一个列表,则可以直接继承ListActivity实现。继承ListActivity的类中无须调用setContentView方法来显示画面,可以直接为其设置适配器,从而显示一个列表:

String[] strArray2=new String[]{"星球大战","神探夏洛克","老炮","唐人街探案"};
        ArrayAdapter<String>adapter=new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_checked,strArray2);
        setListAdapter(adapter);

为了获取选项的值,需要重写父类中的onListItemClick:

protected void onListItemClick(ListView l, View v, int position, long id) {
        String result=l.getItemAtPosition(position).toString();
        Toast.makeText(MainActivity.this,result,Toast.LENGTH_SHORT).show();
    }

Spinner组件
Android中提供的Spinner列表选择框相当于在网页中常见的下拉列表框,通常用于提供一系列的列表项,供用户进行选择,从而方便用户。
使用方法与ListView组件类似。

你可能感兴趣的:(android)