Spinner控件的使用

Spinner控件是一种下拉列表,提供一些数据供用户选择,它的数据源是通过ArrayAdapter提供的,而ArrayAdater的数据源有两种方式提供,一种是在资源文件中,另一种则是在程序中构造数组。下面是例子:

package com.my.simple;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class SpinnerDemo extends Activity {
    /** Called when the activity is first created. */
	String[] bloodType = new String[]{"A","B","AB","O"};
	private static final boolean DEBUG = true;
	private static final String TAG = "SpinnerDemo";
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Spinner mSpinnerBloodType = (Spinner)findViewById(R.id.Bloodspinner);
        Spinner mSpinnerColor = (Spinner)findViewById(R.id.Colorspinner);
        
        //构建ArrayAdapter,数据源是数组
        ArrayAdapter mbloodAdapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item,bloodType);
        //构建ArrayAdapter,数据源是资源文件
        ArrayAdapter mColorAdapter = ArrayAdapter.createFromResource(this, R.array.colors, android.R.layout.simple_spinner_item);
        
        //设置下拉列表样式
        mbloodAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        mColorAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        
        mSpinnerBloodType.setAdapter(mbloodAdapter);
        
        //添加监听器
        mSpinnerBloodType.setOnItemSelectedListener(new OnItemSelectedListener(){
        	
			@Override
			public void onItemSelected(AdapterView<?> arg0, View arg1,
					int arg2, long arg3) {
				// TODO Auto-generated method stub
				if(DEBUG){
					Log.d(TAG, String.valueOf(arg0));
					Log.d(TAG, String.valueOf(arg1));
					Log.d(TAG, String.valueOf(arg2));
					Log.d(TAG, String.valueOf(arg3));
				}
				Toast.makeText(SpinnerDemo.this, 
						SpinnerDemo.this.getResources().getString(R.string.selectedItem)+":"+bloodType[arg2], Toast.LENGTH_SHORT).show();
			}

			@Override
			public void onNothingSelected(AdapterView<?> arg0) {
				// TODO Auto-generated method stub
				
			}
        	
        });
        mSpinnerColor.setAdapter(mColorAdapter);
        
        
    }
}

下面是资源文件代码:

<?xml version="1.0" encoding="utf-8"?>
<resources>
	<string-array name="colors">
		<item>黑色 | Black</item>
  		<item>蓝色 | Blue</item>
  		<item>棕色 | Brown</item>
  		<item>绿色 | Green</item>
  		<item>灰色 | Grey</item>
  		<item>粉色 | Pink</item>
  		<item>紫色 | Purple</item>
  		<item>红色 | Red</item>
  		<item>白色 | White</item>
  		<item>黄色 | Yellow</item>
	</string-array>
</resources>

这是我自己做的总结,仅供参考!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值