Spinner初始化自动触发onItemSelected

转载 2015年11月17日 21:47:36

Spinner在初始化时会自动调用一次OnItemSelectedListener事件,
但在实际开发过程中,我们不需要此功能.本人通过总结,终于找到最简单的解决方法
提供的解决办法:
第一步:设定Spinner数据源
第二步:注册事件之前调用 spinner.setSelection(0, true);
第三步:注册事件
第四步:将事件中判断 spinner选择索引结果为0,则退出事件处理

if (arg2==0)
{
    return;
}

这样OnItemSelectedListener事件不会被触发

private void initMySpinner() {
        String[] phones = {"iPhone","Android","BlackBerry"};
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                this,  android.R.layout. simple_spinner_item,
                phones);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        spinner.setPrompt("test");
        spinner.setSelection(0, true);
        spinner.setOnItemSelectedListener(new SpinnerOnSelectedListener());
    }

  private class SpinnerOnSelectedListener implements     OnItemSelectedListener {

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
            //退出事件处理(初始化)
    if (arg2==0)
    {
return;
    }
          //处理你选择的事件
          ................
}


@Override
public void onNothingSelected(AdapterView<?> arg0) {
    // TODO Auto-generated method stub

}
}

Android Spinner选择同一个选项时触发onItemSelected事件

今天有个同事在使用spinner控件时,再次选择同一个选项时没有触发onItemSelected事件。因为项目需求的原因,非常需要。所以我们一起看了看源码找出了“再次选择同一选项时为什么不触发事件”。...
  • crystalddd
  • crystalddd
  • 2015年11月16日 22:15
  • 4908

spinner不显示Item的原因

如果你设置静态的一个数组的话,显示是没有问题的,但当你异步加载数据的时候,你spinner中的数据是动态添加的,在动态添加完成后,应该重新设置一下Adapter数据,但一定是在异步加载数据的onPos...
  • yangaiyu
  • yangaiyu
  • 2017年05月04日 14:54
  • 543

android Spinner 禁止OnItemSelectedListener默认自动调用一次

Spinner在初始化时会自动调用一次OnItemSelectedListener事件 原因:有人说是Bug,其实这与C#的事件机制类似,这个我也不懂。 提供的解决办法:在事件注册之前调用 spin...
  • yangtao6888
  • yangtao6888
  • 2013年07月19日 11:23
  • 7834

Spinner初始化不触发onItemSelected

Spinner在初始化时会自动调用一次OnItemSelectedListener事件, 但在实际开发过程中,我们不需要此功能.本人通过总结,终于找到最简单的解决方法  提供的解决办法: 第一步...
  • lotusyangjun
  • lotusyangjun
  • 2015年09月24日 11:04
  • 2737

Android解决Spinner初始化时自动选择第一个 item 和点击已选中的 item 时不触发Listener

Spinner 这个控件是我目前在开发中遇到的特性最奇怪的控件了,说它奇怪是指有点反直觉,比如说,为什么初始化时要自动选择第一个 item?以及为什么同一个 item 选中第二次的时候不触发 OnIt...
  • z3896823
  • z3896823
  • 2018年01月30日 22:13
  • 54

android Spinner 禁止OnItemSelectedListener默认自动调用一次

Spinner在初始化时会自动调用一次OnItemSelectedListener事件 原因:有人说是Bug,其实这与C#的事件机制类似,这个我也不懂。 提供的解决办法:在事件注册之前调用 spin...
  • Evahuangchen
  • Evahuangchen
  • 2016年05月17日 15:54
  • 819

Android开发之spinner的使用

我想用spinner来实现下拉列表框的功能,还能点击item响应事件。 1.对于给spinner添加项目有两种方式,第一种是在xml文件中以资源的方式添加,第二种是直接在代码中添加。具体实现可以...
  • u010559672
  • u010559672
  • 2015年06月18日 09:53
  • 402

解决没有点击Spinner,还会执行setOnItemSelectedListener监听

解决没有点击Spinner,还会执行setOnItemSelectedListener监听
  • cxt528440900
  • cxt528440900
  • 2015年08月18日 16:06
  • 2277

Android中spinner的监听问题

我想要实现这样一个功能,一个Activity中有一个spinner,当我点击spinner其中的某一条的时候便弹出一个对话框。 于是我想到了setOnItemClickListener这个方法,测试...
  • zackyG
  • zackyG
  • 2012年05月23日 11:08
  • 1153

关于Android Spinner setSelection 和 onItemSelected事件的触发顺序

在Android开发中。会遇到想setSelection但是不想触发onItemSelected事件这种情况。 一般想法,是先移除监听器,等修改完成之后,再添加监听器。 但是,事实上,setSel...
  • Sun_Wu
  • Sun_Wu
  • 2016年11月30日 12:07
  • 2355
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spinner初始化自动触发onItemSelected
举报原因:
原因补充:

(最多只允许输入30个字)