android Spinner用法

    技术2022-05-20  70

    下拉菜单Spinner 用法,效果图: 布局xml 代码:

    1

    2

    3

    4

    5

    6

    7

    <Spinner android:id = "@+id/sp1"

          android:layout_width = "fill_parent"

          android:layout_height = "wrap_content"

          android:text = " 下拉菜单 "

          android:drawSelectorOnTop = "true"

          android:prompt = "@string/planet_prompt"

    />

    上面的prompt 属性就是点击后跳出的选择框的标题栏上的文字,本来想直接打上字符串,但是提示出错,而把字符串放进string.xml 就没问题,不知什么原因。 string.xml:

    1

    <string name = "planet_prompt" > Choose a planet</string>

    最后是程序代码:

    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

    55

    56

    57

    package com.pocketdigi ;

     

    import java.util.List ;

     

    import android.app.Activity ;

    import android.os.Bundle ;

    import android.view.View ;

    import android.widget.AdapterView ;

    import android.widget.ArrayAdapter ;

    import android.widget.Spinner ;

    import android.widget.Toast ;

    import android.widget.AdapterView.OnItemSelectedListener ;

     

    public class main extends Activity {

        /** Called when the activity is first created. */

        @Override

        public void onCreate( Bundle savedInstanceState) {

             super .onCreate ( savedInstanceState) ;

            setContentView( R.layout .main ) ;

            SpDemo() ;

        }

        Spinner sp1;

        ArrayAdapter< String> adapter;

        List< String> allnum;

        private static String [] arr= { "1" ,"2" ,"3" } ; // 定义一组选项

        private static String [] Value= { " 我是 1" ," 我是 2" ," 我是 3" } ; // 定义选中后得到的值

          private void SpDemo() {

                // 下面开始插入数据

                sp1= ( Spinner) findViewById( R.id .sp1 ) ;

                adapter= new ArrayAdapter< String> ( this ,android.R .layout .simple_spinner_item ,arr) ;

                // 将可选内容与 ArrayAdapter 连接

                adapter.setDropDownViewResource ( android.R .layout .simple_spinner_dropdown_item ) ;

                // 设置下拉列表的风格

                sp1.setAdapter ( adapter) ;

                // adapter 添加到 Spinner

                // 插入数据结束

                // 下面开始获取选中的值

                sp1.setSelection ( 2 ) ;

                sp1.setOnItemSelectedListener ( new OnItemSelectedListener(){

                      @Override

     

                      public void onItemSelected( AdapterView<?> arg0, View arg1,

                                   int arg2, long arg3) {

                            // TODO Auto-generated method stub

                            Toast.makeText ( main.this , Value[ arg2] ,10 ) .show () ;

     

                      }

     

                      @Override

                      public void onNothingSelected( AdapterView<?> arg0) {

                            // TODO Auto-generated method stub

                            Toast.makeText ( main.this , " 没选中 " ,10 ) .show () ;

                      }

     

                }) ;

          }

    }

    上面代码中,插入数据那段,还可以用以下方法: 方法一,直接在程序中add

    1

    2

    3

    4

    5

    6

    7

    sp1= ( Spinner) findViewById( R.id .sp1 ) ;

    adapter= new ArrayAdapter< String> ( this ,android.R .layout .simple_spinner_item ) ;

    adapter.setDropDownViewResource ( android.R .layout .simple_spinner_dropdown_item ) ;

    adapter.add ( "1" ) ;

    adapter.add ( "2" ) ;

    adapter.add ( "3" ) ;

    sp1.setAdapter ( adapter) ;

    方法二,把数据放入xml 文件中 res/layout 目录下建立新的XML 文件,文件名为Spinner.xml, 内容如下:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    <?xml version = "1.0" encoding = "utf-8" ?>

    <resources>

     

        <string-array name = "num" >

            <item> 1</item>

            <item> 2</item>

            <item> 3</item>

        </string-array>

    </resources>

    主程序加入数据那段代码改为下面的代码:

    1

    2

    3

    4

    sp1= ( Spinner) findViewById( R.id .sp1 ) ;

    ArrayAdapter< CharSequence> Ad= ArrayAdapter.createFromResource ( this , R.array .num ,android.R .layout .simple_spinner_item ) ;

    Ad.setDropDownViewResource ( android.R .layout .simple_spinner_dropdown_item ) ;

    sp1.setAdapter ( Ad) ;

    注意:这段用的是ArrayAdapter<CharSequence> ,上面两种用的是ArrayAdapter<String> ,所以重新定义ArrayAdapter

     


    最新回复(0)