Android Spinner填充数据后设置默认值的问题
2013-10-15 16:09
337 查看
为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(); }
问题很奇怪,此外还发现适配完数据后会默认选中第一个,并且这个默认选中第一个的操作并不是马上执行的,而是一段时候后再执行,并触发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填充数据后设置默认值的问题
- [Android]为Spinner填充数据后设置默认值的问题
- [Android]为Spinner填充数据后设置默认值的问题
- [Android]为Spinner填充数据后设置默认值的问题
- [Android]为Spinner填充数据后设置默认值的问题
- [Android]为Spinner填充数据后设置默认值的问题
- Android Spinner填充数据后设置默认值
- Spinner填充数据后设置默认值的问题
- 为Spinner填充数据后设置默认值的问题
- 写一个带有“请选择的”的下拉框,需要用到 map(用于设置默认值)和 Array(用于填充数据)
- Android APN的设置问题 默认“已起用数据” 关闭
- android RecyclerView 频繁设置数据闪退问题
- 解决android greenDAO没有默认值default value和没有原始数据类型的问题
- android项目中spinner设置默认值
- Android GreenDao 3.0下给数据表的字段设置默认值
- Android之Spinner选中列表数据不显示数据问题
- Android APN的设置问题 默认“已起用数据” 关闭
- 解决android greenDAO没有默认值default value和没有原始数据类型的问题
- android项目中spinner设置默认值
- 开发过程中遇到切图的大小的问题,以下是解决设置Android中RadioButton的图片大小和位置