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在初始化时会自动调用一次OnItemSelectedListener事件, 但在实际开发过程中,我们不需要此功能.本人通过总结,终于找到最简单的解决方法  提供的解决办法: 第一步...

Spinner 使用方法小结

android里的Spinner其实就是个ComboBox =。= 一。基本使用方法: main.xml 不多解释 xml version="1.0" encoding="utf-8"?> ...
  • wzxisme
  • wzxisme
  • 2014年06月20日 17:12
  • 5238

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

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

android spinner 调用onItemSelectedListener的思考

由于项目从别人手中接收,所以很多暗坑自己不知道,于是今天先总结一个。 在使用spinner的过程中,我们设置了setOnItemSelectedListener,来实现选择条目的操作,当我们在onC...

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

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

代码触发Spinner的点击事件

performClick():如果它被定义就调用此视图的OnClickListener ,代码触发Spinner的点击事件 其他方法:     setPrompt(CharSequence ...

给定A, B两个整数,不使用除法和取模运算,求A/B的商和余数

给定A, B两个整数,不使用除法和取模运算,求A/B的商和余数。 1.   最基本的算法是,从小到大遍历: for (i = 2 to A -1)          if (i * B > A)...

利用K-means聚类算法根据经纬度坐标对中国省市进行聚类

K-means聚类算法是一种非层次聚类算法,在最小误差的基础上将数据划分了特定的类,类间利用距离作为相似度指标,两个向量之间的距离越小,其相似度就越高。程序读取全国省市经纬度坐标,然后根据经纬度坐标进...

Radon变换理论介绍与matlab实现--经验交流

本人最近在研究Radon变换,在查阅了各种资料之后在此写下个人的理解,希望与各位牛牛进行交流共同进步,也使得理解更加深刻些。 Radon变换的本质是将原来的函数做了一个空间转换,即,将原来的XY平...

CT图像重建技术

由于csdn贴图不方便,并且不能上传附件,我把原文上传到了资源空间CT图像重建技术 1.引言 计算机层析成像(Computed Tomography,CT)是通过对物体进行不同角度的射线投影测量而...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spinner初始化自动触发onItemSelected
举报原因:
原因补充:

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