Spinner的基本使用

***Spinner的使用

*定义:Spinner表现为一种列表,主要作用是让用户进行选择

*使用方式:
方式一:xml文件中定义加载的数据资源,通过ArrayAdapter.creatFromResource()方法加载资源
方式二:Java代码中使用Adapter对象,把List中的数据资源加载到Spinner中

*使用步骤:
1.准备需要加载展示的数据源
2.将数据源中的数据加载到适配器中
3.将适配器中的数据加载到控件中

values文件夹的Strings.xml文件中添加数据源:

<resources>
    <string name="app_name">SpinnerDemo</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <!--相当于定义了一个字符串数组,数组名是fruit_array  -->
    <string-array name = "fruits_array"> 
        <item >苹果</item>
        <item >香蕉</item>
        <item >橘子</item>
        <item >菠萝</item>
        <item >哈密瓜</item>
        <item >火龙果</item>
    </string-array>
</resources>

Java代码中:

public class MainActivity extends Activity {
    private Spinner spinner;
    private ArrayAdapter<String> adapter;
    private String[] fruits;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        spinner = (Spinner) findViewById(R.id.sp);
        fruits = getResources().getStringArray(R.array.fruits_array);
        /* ArrayAdapter构造参数说明:
         * context:上下文对象
         * resource:表示列表item的布局资源id
         * objects:表示加载的数据源
         */
        adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item, fruits);
        spinner.setAdapter(adapter);
        //设置当spinner控件中的item被选中时触发的监听事件
        spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
            /*表示当spinner控件中的item被选中时的回调方法
             * AdapterView<?> parent:表示当前触发事件的适配器控件对象spinner
             * View view:表示当前被选中的item的对象
             * int position:表示被选中的item的下标
             * long id:表示当前被选中的item的id
             */
            @Override
            public void onItemSelected(AdapterView<?> parent, View view,
                    int position, long id) {
                String s1 = fruits[position];//在数据源中获取
                String s2 = adapter.getItem(position);//根据下标在适配器中获取
                String s3 = spinner.getItemAtPosition(position).toString();//根据下标在spinner中获取
                Toast.makeText(MainActivity.this, "s1="+s1+"s2="+s2+"s3="+s3, Toast.LENGTH_SHORT).show();       
            }
            //当没有任何选中时回调的方法
            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                // TODO Auto-generated method stub
                
            }
            
        });
    }
}

1503569-20181012093941182-169437212.png

转载于:https://www.cnblogs.com/SanguineBoy/p/9773861.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值