android学习之下拉列表Spinner使用


Spinner的使用

Spinner在普通状态下不会将所有的选项展示在界面上,只有当其被单击后才显示,这样就减少了组建在界面中占用的面积,从而使得界面布局更加灵活

常用属性和方法:

属性:                               方法 说明

Android:entries   设置选项

  getCount() 获取选项总数

setOnItemClickListener(AdapterView.OnItemClickListenerl)   注册单击监听器,当选项不支持单击事件时,将会抛出异常

setOnItemSelectedListener(AdapterView.OnItemSelectedListenerl) 注册选择监听器

setAdapter(SpinnerAdapter adapter) 设置数据适配器

setSelection(intposition) 设置被选中的选项

 

android:pormpt

setPromptId(intpromptId) 设置选项标题


建立一个Spinner的步骤:

1.      在布局文件当中声明Spinner控件

2.      在Strings.xml当中声明一个数组

3.      创建一个ArrayAdapter

4.      得到Spinner对象,并设置数据

5.      创建一个监听器

6.      绑定监听器


主界面布局资源代码main.xml(res/layout/main.xml):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <Spinner
    android:id="@+id/spinnerId"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
</LinearLayout>

Spinner选项的代码资源string.xml(res/values/strings.xml)

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">SpinnerTest</string>
    <string-array name="planets_array">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
        <item>Jupiter</item>
        <item>Saturn</item>
        <item>Uranus</item>
        <item>Neptune</item>
    </string-array>
</resources>

主界面MainActivity代码:

package com.hjx.spinner;

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

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
	
	private Spinner spinner=null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        spinner=(Spinner)findViewById(R.id.spinnerId);
        //通过createFromResource方法创建一个ArrayAdapter对象
        //第一个参数是上下文对象
        //第二个参数应用在string.xml文件当中定义的String数组
        //第三个参数是用来指定Spinner的样式,是一个布局文件ID,该布局文件由Android系统提供,也可以替换为自己定义的布局文件
        
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
                this, R.array.planets_array, android.R.layout.simple_spinner_item);
       //设置Spinner当中每个条目的样式,同样是引用一个Android系统提供的布局文件
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        spinner.setPrompt("测试");
        spinner.setOnItemSelectedListener(new SpinnerOnSelectedListener());
        
    }
    class SpinnerOnSelectedListener implements OnItemSelectedListener{
    	@Override
    	public void onItemSelected(AdapterView<?> adpaterView,View view, int position, long id) {
    		String selected =adpaterView.getItemAtPosition(position).toString();
    		System.out.println(selected);
    	    }

		@Override
		public void onNothingSelected(AdapterView<?> adapterView) {
			// nothing to do
			System.out.println("NothingSelected");
		}
    }
}

运行效果:






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值