[Android]为Spinner填充数据后设置默认值的问题

简介:

前言

   为Spinner适配完数据后需要设置其默认选项,但是发现直接setSelection(int position)有时候不管用,打开选项又发现已经选中了,但是显示出来的选项又始终默认第一个,本文为文章1的中文简单译本。

 

文章

  1.  Using spinner.setSelection & finding the spinner doesn't show the selected item when closed?

 

声明

  欢迎转载,但请保留文章原始出处:) 

    博客园:http://www.cnblogs.com

    农民伯伯: http://www.cnblogs.com/over140/

 

正文

  问题很奇怪,此外还发现适配完数据后会默认选中第一个,并且这个默认选中第一个的操作并不是马上执行的,而是一段时候后再执行,并触发OnItemSelectedListener事件。下面直奔主题:

  旧代码:

        spinner.setAdapter(adapter);
        spinner.setSelection(
2 ); 

  新代码:

        spinner.setAdapter(adapter);
        spinner.setSelection(
2 , true );

  在来看setSelection有两个参数的函数重载的说明:

setSelection(int position, boolean animate)

  英文:Jump directly to a specific item in the adapter data.

  中文:直接跳到数据适配器中指定项。

 

  以下是两个函数的源代码:

复制代码
     /**
     * Jump directly to a specific item in the adapter data.
     
*/
    
public   void  setSelection( int  position,  boolean  animate) {
        
//  Animate only if requested position is already on screen somewhere
         boolean  shouldAnimate  =  animate  &&  mFirstPosition  <=  position  &&
                position 
<=  mFirstPosition  +  getChildCount()  -   1 ;
        setSelectionInt(position, shouldAnimate);
    }
    

    @Override
    
public   void  setSelection( int  position) {
        setNextSelectedPositionInt(position);
        requestLayout();
        invalidate();
    }
复制代码

 

结束

  看起来像是专门准备了一个函数在数据适配(填充)完后设置默认值的,可惜API文档还没有翻译到这里,不然少走这个弯路了 :)


转载:http://www.cnblogs.com/over140/archive/2010/09/25/1834469.html

目录
相关文章
|
5天前
|
JSON Android开发 数据格式
android与Web服务器交互时的cookie使用-兼谈大众点评数据获得(原创)
android与Web服务器交互时的cookie使用-兼谈大众点评数据获得(原创)
21 2
|
5天前
|
Java Linux API
统计android设备的网络数据使用量
统计android设备的网络数据使用量
16 0
|
4天前
|
XML Java Android开发
Android spinner 的使用
Android spinner 的使用
15 6
|
4天前
|
Shell Android开发
Android设置语言
Android设置语言
11 1
|
5天前
|
存储 Java Android开发
Android轻量级数据SparseArray详解
Android轻量级数据SparseArray详解
7 0
|
5天前
|
Android开发 数据库管理
Android如何在Activity和Service之间传递数据
Android如何在Activity和Service之间传递数据
12 3
|
5天前
|
XML JSON API
转Android上基于JSON的数据交互应用
转Android上基于JSON的数据交互应用
11 1
|
5天前
|
XML Android开发 数据格式
关于Android中Spinner的使用
关于Android中Spinner的使用
10 1
|
5天前
|
Java Shell Android开发
Android11 有线网和wifi优先级设置
Android11 有线网和wifi优先级设置
17 0
|
5天前
|
Java Android开发
Android 设置系统时区的源码追踪
Android 设置系统时区的源码追踪
13 1