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

}
}
举报

相关文章推荐

使用暴力反射让Spinner选择同一选项时触发onItemSelected事件

我们的客户有时候是变态的,导致需求有时候也是变态的,比如这次项目,使用Spinner选择城市,要求每选择一次城市,就要重新加载一次数据,就算与上一次选择的是同一个城市,也要刷新数据。可是android...

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

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

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

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

小提示:摆渡搜索“spinner点击事件原理” 声明:本文转载自“http://blog.5ibc.net/p/25048.html”今天在使用spinner控件时,再次选择同一个选项时没有触发on...

Spinner类OnItemSelected回调流程

Spinner的OnItemSelected回调

linux设备驱动程序注册过程详解

Linux的驱动程序注册过程,大致分为两个步骤: 模块初始化 驱动程序注册 下面以内核提供的示例代码pci-skeleton.c,详细说明一个pci设备驱动程序的注册过程。其他设备的...

android 自动初始化控件 不用注解不用findViewByid

界面控件的初始化一般通过 findViewByid 来查找绑定再强制转换,这项工作只是个纯体力活没有任何营养,现在有很多开源类包支持通过注解的形式来绑定控件类似这样 public class...

[swift]初始化方法自动继承

子类默认不会继承父类的初始化方法,然而,如果某种条件满足的话,父类的初始化方法还是可以继承给子类。在通常情况下,这意味着你不必复写父类的初始化方法,在安全的前提下可以以最低的代价继承父类的初始化方法。...

java(6)------构造器自动初始化

对于方法的创建,可将其想象成为自己写的每个类都调用一次 initialize()。这个名字提醒我们在使用对象 之前,应首先进行这样的调用。但不幸的是,这也意味着用户必须记住调用方法。在 Java 中,...

C++ 初始化形式、变量初始化规则、类构造函数的初始化列表

类构造函数的初始化列表,举例 一个对象的构造分两部分,首先是分配空间,然后初始化。 只要有对象生成,不管是以什么形式生成,都会调用构造函数进行初始化。 然后下面有个例子,在蓝色区域Big类的复制构造函...

Java类的实例化的初始化过程

Java类的实例化的初始化过程/* * Java类实例化的初始化过程. * 执行顺序: * (静态变量->静态初始化块)->main->(实例变量->实例初始化块)->构造器 */pu...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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