4 回答
TA贡献1810条经验 获得超4个赞
public static void selectSpinnerItemByValue(Spinner spnr, long value) {
SimpleCursorAdapter adapter = (SimpleCursorAdapter) spnr.getAdapter();
for (int position = 0; position < adapter.getCount(); position++) {
if(adapter.getItemId(position) == value) {
spnr.setSelection(position);
return;
}
}
}
您可以像上面这样使用:
selectSpinnerItemByValue(spinnerObject, desiredValue);
&当然,您也可以直接按索引选择,例如
spinnerObject.setSelection(index);
TA贡献1851条经验 获得超5个赞
一些解释(至少对于Fragments-从未尝试使用纯Activity)。希望它可以帮助某人更好地了解Android。
阿伦·乔治 (Arun George)最受欢迎的答案是正确的,但在某些情况下不起作用。Marco HC使用Runnable
的答案是最后的手段,因为它会增加CPU负载。
答案是-你应该简单地选择正确的地方打电话到为setSelection() ,例如,它的工作对我来说:
@Override
public void onResume() {
super.onResume();
yourSpinner.setSelection(pos);
}
但是它在onCreateView()中不起作用。我怀疑这是引起该主题兴趣的原因。
秘密是,在Android中,您无法以任何方法执行任何操作-oops :(-组件可能尚未准备就绪。作为另一个示例-您无法在onCreateView()和onResume()中都无法滚动ScrollView(在这里查看答案)
- 4 回答
- 0 关注
- 335 浏览
添加回答
举报