zoukankan      html  css  js  c++  java
  • Android 之 下拉框(Spinner)的使用

    转自:http://www.oschina.net/question/54100_33274

    出处:http://imshare.iteye.com/blog/770950

    下拉列表 Spinner。 

    Spinner的使用,可以极大提高用户的体验性。当需要用户选择的时候,可以提供一个下拉列表将所有可选的项列出来。供用户选择。 

    Demo如下,可以留作参考 

    一、使用数组作为数据源
     

    1.新建一个android的工程 
    2.工程的layout.xml文件如下:声明一个TextView控件和一个Spinner控件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:orientation="vertical"
      >
      <TextView android:id="@+id/spinnerText"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"></TextView>
      <Spinner android:id="@+id/Spinner01"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content"></Spinner>
    </LinearLayout>

    3.java代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    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;
    import android.widget.TextView;
     
    public class SpinnerActivity extends Activity {
         
        private static final String[] m={"A型","B型","O型","AB型","其他"};
        private TextView view ;
        private Spinner spinner;
        private ArrayAdapter<String> adapter;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.spinner);
             
            view = (TextView) findViewById(R.id.spinnerText);
            spinner = (Spinner) findViewById(R.id.Spinner01);
            //将可选内容与ArrayAdapter连接起来
            adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,m);
             
            //设置下拉列表的风格
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
             
            //将adapter 添加到spinner中
            spinner.setAdapter(adapter);
             
            //添加事件Spinner事件监听 
            spinner.setOnItemSelectedListener(new SpinnerSelectedListener());
             
            //设置默认值
            spinner.setVisibility(View.VISIBLE);
             
        }
         
        //使用数组形式操作
        class SpinnerSelectedListener implements OnItemSelectedListener{
     
            public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                view.setText("你的血型是:"+m[arg2]);
            }
     
            public void onNothingSelected(AdapterView<?> arg0) {
            }
        }
    }

    4、运行效果如下: 

     

      

    二、使用XML作为数据源 
    1.新建一个android的工程 
    2.在values文件夹下新建一个arryas.xml文件:声明一个TextView控件和一个Spinner控件,代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string-array name="plantes">
            <item>NOKIA</item>
            <item>MOTO</item>
            <item>HTC</item>
            <item>LG</item>
            <item>其他</item>
        </string-array>
    </resources>

    3.java代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    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;
    import android.widget.TextView;
     
    public class SpinnerActivity extends Activity {
         
        private TextView view2;
        private Spinner spinner2;
        private ArrayAdapter adapter2;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.spinner);
     
            spinner2 = (Spinner) findViewById(R.id.spinner02);
            view2 = (TextView) findViewById(R.id.spinnerText02);
     
            //将可选内容与ArrayAdapter连接起来
            adapter2 = ArrayAdapter.createFromResource(this, R.array.plantes, android.R.layout.simple_spinner_item);
     
            //设置下拉列表的风格
     adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
     
            //将adapter2 添加到spinner中
            spinner2.setAdapter(adapter2);
     
            //添加事件Spinner事件监听 
            spinner2.setOnItemSelectedListener(new SpinnerXMLSelectedListener());
     
            //设置默认值
            spinner2.setVisibility(View.VISIBLE);
             
        }
         
        //使用XML形式操作
        class SpinnerXMLSelectedListener implements OnItemSelectedListener{
            public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                view2.setText("你使用什么样的手机:"+adapter2.getItem(arg2));
            }
     
            public void onNothingSelected(AdapterView<?> arg0) {
                 
            }
             
        }
    }

    4、运行效果如下: 

     

     

  • 相关阅读:
    jsp mysql 配置线程池
    服务端 模拟 检测 攻击。。乱写
    硕思闪客精灵 7.2 破解版
    unity UnityAwe 插件
    smartfoxserver 2x 解决 Math NAN
    unity 断点下载
    java 监听文件目录修改
    wind7 64 setup appjs
    sfs2x 修改jvm 内存
    unity ngui 解决图层问题
  • 原文地址:https://www.cnblogs.com/fanerblog/p/4859012.html
Copyright © 2011-2022 走看看