zoukankan      html  css  js  c++  java
  • Android Spinner填充数据后设置默认值的问题

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

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

  • 相关阅读:
    log4net简介(四)
    Log4net简介(二)
    详解制作集成SP2的Windows2003安装光盘
    给Fedora11安装声卡驱动
    CSS背景色的半透明设置
    利用事务日志来误操作恢复与灾难恢复
    log4net简介(三)之无法写入日志
    能盖住Select的Div
    SQLServer将日期转换成字符串格式
    如何在 Windows 恢复环境中使用 Bootrec.exe 工具解决和修复 Windows Vista 中的启动问题
  • 原文地址:https://www.cnblogs.com/xiao-xu/p/3370418.html
Copyright © 2011-2022 走看看