06 Spinner

一.Spinner下拉列表:

1. 说明:

   是一种常见的图形组件,它可以为用户提供列表的选择方式,也复选框或单选钮相比号可以节省
手机屏幕的空间。在Android中通过使用android.widget.Spinner类实现。

2. 定义:

java.lang.Object
   |-android.view.View
 	   |-android.view.ViewGroup
 	 	   |-android.widget.AdapterView<T extends android.widget.Adapter>
 	 	 	   |-android.widget.AbsSpinner
 	 	 	 	   |-android.widget.Spinner

3.由于Spinner的核心问题在于内容的设置上,所以所讲的操作方法也是与内容设置有关。


  1.setAdapter(SpinnerAdapter adapter): 设置下拉列表框中的显示内容。

  2.SpinnerAdapter的功能就是一个适配器,会将所需的数据进行包装并放在Spinner中。
 
  3.设置内容的方式:
   
 一:直接通过资源文件配置:
       1.可以在values文件夹之中定义若干个资源文件,例如,定义一个表示城市信息的下拉选项,
          就可以定义一个city_data.xml.

  在city_data.xml文件中配置:
      
  <string-array name=city_data>
    <item>北京</item>
    <item>上海</item>
    <item>成都</item>
    <item>杭州</item>
  </string-array>
 
  在main.xml中配置:

    <Spinner
        android:id="@+id/my2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:prompt="请输入你喜欢的城市"
        android:entries="@array/city_data"
     />


 二:通过android.widget.ArrayAdapter类

ArrayAdapter类 功能:

   读取资源文件中定义的列表项或者是通过List集合设置列表项。

package com.spinner;

import java.util.Collection;
import java.util.Iterator;
import java.util.ArrayList;
import java.util.ListIterator;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

public class SpinnerActivity extends Activity {

	private Spinner spinner = null;
	private ArrayAdapter<CharSequence> adpter = null;

	private Spinner spiedu = null;
	private ArrayAdapter<CharSequence> adpteredu = null;
	private ArrayList<CharSequence> dataedu = null; // 定义一个集合数据

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		super.setContentView(R.layout.main);

		this.spinner = (Spinner) super.findViewById(R.id.my3); // 得到Spinner组件
		this.adpter = ArrayAdapter.createFromResource(this, R.array.color_data,
				android.R.layout.simple_spinner_item); // 实例化ArrayAdapter
		this.adpter
				.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // 换个显示风格
		this.spinner.setAdapter(adpter); // 设置显示信息

		// 配置List集合包装的下拉内容:
		this.dataedu = new ArrayList<CharSequence>();
		this.dataedu.add("小学");
		this.dataedu.add("初中");
		this.dataedu.add("高中");
		this.dataedu.add("专科");
		this.dataedu.add("本科");

		this.spiedu = (Spinner) findViewById(R.id.my4); // 取得下拉框

		this.spiedu.setPrompt("请选择你的学历");
		this.adpteredu = new ArrayAdapter<CharSequence>(this,
				android.R.layout.simple_spinner_item, dataedu);

		this.adpteredu
				.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // 换个显示风格
		this.spiedu.setAdapter(adpteredu);

	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值