您的位置:首页 > 移动开发 > Android开发

android.widget.Spinner

2014-04-01 09:01 639 查看
正文  问题很奇怪,此外还发现适配完数据后会默认选中第一个,并且这个默认选中第一个的操作并不是马上执行的,而是一段时候后再执行,并触发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.
*/
publicvoid 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
publicvoid setSelection(int position) {
setNextSelectedPositionInt(position);
requestLayout();
invalidate();
}
结束
  看起来像是专门准备了一个函数在数据适配(填充)完后设置默认值的,可惜API文档还没有翻译到这里,不然少走这个弯路了 :)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  源代码 Spinner androdi