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

简介:

问题很奇怪,此外还发现适配完数据后会默认选中第一个,并且这个默认选中第一个的操作并不是马上执行的,而是一段时候后再执行,并触发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();
    }

本文转自博客园农民伯伯的博客,原文链接:[Android]为Spinner填充数据后设置默认值的问题,如需转载请自行联系原博主。 

目录
相关文章
|
18天前
|
消息中间件 网络协议 Java
Android 开发中实现数据传递:广播和Handler
Android 开发中实现数据传递:广播和Handler
16 1
|
4天前
|
Java Linux API
统计android设备的网络数据使用量
统计android设备的网络数据使用量
14 0
|
18天前
|
存储 Java Android开发
Android系统 设置第三方应用为默认Launcher实现和原理分析
Android系统 设置第三方应用为默认Launcher实现和原理分析
40 0
|
1天前
|
Android开发 数据库管理
Android如何在Activity和Service之间传递数据
Android如何在Activity和Service之间传递数据
|
2天前
|
XML JSON API
转Android上基于JSON的数据交互应用
转Android上基于JSON的数据交互应用
|
2天前
|
JSON Android开发 数据格式
android与Web服务器交互时的cookie使用-兼谈大众点评数据获得(原创)
android与Web服务器交互时的cookie使用-兼谈大众点评数据获得(原创)
11 2
|
2天前
|
XML Android开发 数据格式
关于Android中Spinner的使用
关于Android中Spinner的使用
|
4天前
|
Java Shell Android开发
Android11 有线网和wifi优先级设置
Android11 有线网和wifi优先级设置
9 0
|
5天前
|
Java Android开发
Android 设置系统时区的源码追踪
Android 设置系统时区的源码追踪
10 1
|
25天前
|
Android开发 开发者
Android网络和数据交互: 请解释Android中的AsyncTask的作用。
Android&#39;s AsyncTask simplifies asynchronous tasks for brief background work, bridging UI and worker threads. It involves execute() for starting tasks, doInBackground() for background execution, publishProgress() for progress updates, and onPostExecute() for returning results to the main thread.
11 0