Android下拉列表组件

本文介绍了Android中的两种列表组件,ListView和Spinner。ListView是用于展示垂直列表的组件,支持通过ArrayAdapter添加数据,并有多种列表项样式。Spinner则类似于网页的下拉列表,可以通过XML或Java代码添加数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ListView—列表框

ListView 是列表选择组件,垂直列表的形式列出需要显示的列表项(功能列表)

  • 常用的ListView的xml属性
    android:divider 用于列表驶入设置分割条,既可以用颜色分隔也可以用Drawable资源分隔
    android:dividerHeight 用于设置分隔条的高度
    android:entries 用于通过数组资源为ListView指定列表

  • 利用适配器ArrayAdapter来添加数组资源, 在ListView中添加选项的方式有两种:
    1、String.xml文件中string-array标记添加——针对列表项可知且是固定的
    利用xml创建的数组,要通过ArrayAdapter.createFromResource()方法来添加

//创建适配器并添加数组资源
ArrayAdapter<charSequence> adapter = ArrayAdapter.createFromResource(this,R.array.ctype,android.R.layout.simple_list_item_checked,ctype);
//其中的ctype为<String-array name="ctype">
//android.R.layout.simple_list_item_checked为ListView的外观样式

ListView指定的外观形式通常有以下5种:

  • simple_list_item_1 每个列表项都是一个普通文本
  • simple_list_item_2 每个列表项都是一个普通文本(字体略大)
  • simple_list_item_checked 每个列表项都是一个已勾选的列表项
  • simple_list_item_multiple_choice 每个列表项都是带多选框的文本
  • simple_list_item_single_choice 每个列表项都是带单选按钮的文本

    2、在java文件中创建数组或函数—返回值为List类型

listView = (ListView)this.findViewById(R.id.listView1);
ArrayAdapter myAdapter = new ArrayAdapter (this,android.R.layout.simple_list_item_checked,getData());
listView.setAdapter(myAdapter);

//给ListView添加列表项点击事件
listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
     @Override
      public void onItemClick(AdapterView<?> parent, View v, int position,long arg3) {
    // TODO Auto-generated method stub
    //得到列表框的选项
    String result=parent.getItemAtPosition(position).toString();
    Toast.makeText(MainActivity.this, result,1).show();
            }
        });

//其中数组资源函数
public List<String> getData(){
        List<String > list = new ArrayList<String>();

            for(int i = 0; i<100;i++){
                list.add("jack"+i);
            }
        return list;
    }
  • 让Activity继承ListActivity
    继承ListActivity,无须调用setContentView,直接创建适配器,然后使用setListAdapter()方法将其添加到列表中
public class MainActivity extends ListActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
    //新建数据项
    String[] ctype = {"上网","唱歌","跳舞"};
    //创建适配器,添加数组资源
    ArrayAdapter<String> myAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_single_choice,ctype);
    //设置该窗口中显示的列表
    setListAdapter(myAdapter);
}
////以上是在onCreate()方法中////

//给ListView表项添加点击事件,重写onListItemClick()方法
@Override
  public void onItemClick(AdapterView<?> parent, View v, int position,long arg3) {
    // TODO Auto-generated method stub
    //得到列表框的选项
    String result=parent.getItemAtPosition(position).toString();
    Toast.makeText(MainActivity.this, result,1).show();
            }
        }

Spinner—下拉列表框

Spinner列表框相当于在网页中常见的下拉列表框
添加数据有两种方法:
- 1、String.xml文件中标记添加——针对列表项可知且是固定的

 <string-array name="spinnerData"
        <item >北京</item>
        <item >杭州</item>
        <item >南京</item>
        <item >上海</item>
  </string-array>
//然后创建适配器
adapter = ArrayAdapter.createFromResource(this, R.array.spinnerData, android.R.layout.simple_spinner_dropdown_item);
 //将适配器与Spinner关联
spinner1.setAdapter(adapter);
//注册spinner1的监听器
  spinner1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  @Override
  public void onItemClick(AdapterView<?> parent, View v, int position,long arg3) {
    // TODO Auto-generated method stub
    //得到列表框的选项
    String result=parent.getItemAtPosition(position).toString();
    Toast.makeText(MainActivity.this, result,1).show();
            }
    });
  • 2在java文件中使用字符串数组来创建 String[] name= {} 或 建List getData()函数
public List<String> getDateRource(){
        List<String> list = new ArrayList<String>();
        list.add("北京");
        list.add("南京");
        list.add("上海");
        list.add("杭州");
        return list;
    }
    /////在onCreate()方法中来添加列表框Spinner
//创建适配器,并将数据添加到适配器中
ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_dropdown_item,getDateRource());
//Spinner与适配器相关联
spinner.setAdapter(adapter);
//为列表框添加OnItemSelectedListener事件监听
spinner.setOnItemSelectedListener(new AdapterView.OnItemClickListener() {
  @Override
  public void onItemClick(AdapterView<?> parent, View v, int position,long arg3) {
    // TODO Auto-generated method stub
    //得到列表框的选项
    String result=parent.getItemAtPosition(position).toString();
    Toast.makeText(MainActivity.this, result,1).show();
            }
    } )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值