Android中使用Spinner遇到的问题

Spinner的基本用法无须赘述,网上用法很多。
监听器就是OnItemSelectedListener这个

mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(
                AdapterView<?> parent, 
                View view, 
                int position, 
                long id) {
                //这里的view指的点击的那个view
                //position指的是spinner中被点击的位置
                //一般用到的就是这两个变量
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });

设置不可用

mSpinner.setEnabled(false);

设置选定某一个位置

mSpinner.setSelection(0);
mSpinner.setSelection(0,true);//会触发重绘

在平时的项目中,用到了fragment+viewpager的架构,spinner在fragment中没有刷新位置
大家知道viewpager的预加载机制,相邻的pager会被提前加载,所以在第三个fragment中的spinner应该会在滑动到第一个的时候重新触发onCreateView方法,但是实际效果却没有触发重新定位
后来发现可能是因为onViewStateRestore这个生命周期方法中的参数保存了使用了之前销毁的信息并重新设置了spinner,后来在该方法中重新设置Spinner的位置,就实现了刷新功能。

基本功能网上有很多的教程,这里记录了自己使用Spinner时遇到的一些小问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值