Spinner控件详解

本文详细介绍了Spinner控件的使用,包括基本用法、设置Adapter(ArrayAdapter与自定义BaseAdapter)、菜单显示方式及XML属性。通过实例展示了如何响应Spinner的选择事件,以及不同主题下Spinner的样式变化。同时,讲解了通过ArrayAdapter设置Spinner数据和自定义BaseAdapter以实现复杂布局的需求。
摘要由CSDN通过智能技术生成

Spinner提供了从一个数据集合中快速选择一项值的办法。默认情况下Spinner显示的是当前选择的值,点击Spinner会弹出一个包含所有可选值的dropdown菜单,从该菜单中可以为Spinner选择一个新值。

spinner.png

上图显示的是Spinner常见的样式。这篇文章中我将讨论1.Spinner的基本用法 2.设置Spinner的Adapter (arrayadapter 和自定义BaseAdapter)3.Spinner的菜单显示方式 4.Spinner的xml属性

最简单的Spinner

在布局文件中添加Spinner控件

 
 
 
  1.     <LinearLayout 
  2.         android:layout_width="fill_parent"
  3.         android:layout_height="fill_parent"
  4.         android:orientation="vertical" >
  5.      
  6.         <Spinner
  7.             android:id="@+id/spinner1"
  8.             android:layout_width="wrap_content"
  9.             android:layout_height="wrap_content"
  10.             android:entries="@array/languages"
  11.           />
  12.     </LinearLayout>

其中android:entries="@array/languages"表示Spinner的数据集合是从资源数组languages中获取的,languages数组资源定义在values/arrays.xml中:

 
 
 
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3.     <string-array name="languages">
  4.         <item>c语言</item>
  5.         <item>java </item>
  6.         <item>php</item>
  7.         <item>xml</item>
  8.         <item>html</item>
  9.     </string-array>
  10. </resources>

如果你不需要对Spinner的选择事件做响应,那么一个完整的Spinner使用流程就结束了。

运行结果:


QQ图片20150105013559.jpg

当然,一般情况下我们是需要响应Spinner选择事件的,可以通过OnItemSelectedListener的回调方法实现

 
 
 
  1. public class MainActivity extends Activity {
  2.  
  3.     @Override
  4.     protected void onCreate(Bundle savedInstanceState) {
  5.         super.onCreate(savedInstanceState);
  6.         setContentView(R.layout.activity_main);
  7.         Spinner spinner = (Spinner) findViewById(R.id.spinner1);
  8.         spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
  9.             @Override
  10.             public void onItemSelected(AdapterView<?> parent, View view, 
  11.                     int pos, long id) {
  12.            
  13.                 String[] languages = getResources().getStringArray(R.arr
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值