以编程方式设置微调器的选定项目

我正在开发一个android项目,正在使用一个微调器,该微调器使用从数据库填充的数组适配器。


我找不到从列表中以编程方式设置所选项目的方法。例如,如果在微调器中我具有以下各项:


第1类

2类

第3类

创建屏幕时,我将如何以编程方式将Category 2选为所选项目。我以为它可能类似于c#IE Spinner.SelectedText =“ Category 2”,但似乎没有任何类似于Android的方法。


慕丝7291255
浏览 336回答 4
4回答

互换的青春

使用以下内容: spinnerObject.setSelection(INDEX_OF_CATEGORY2)。

蝴蝶不菲

public static void selectSpinnerItemByValue(Spinner spnr, long value) {&nbsp; &nbsp; SimpleCursorAdapter adapter = (SimpleCursorAdapter) spnr.getAdapter();&nbsp; &nbsp; for (int position = 0; position < adapter.getCount(); position++) {&nbsp; &nbsp; &nbsp; &nbsp; if(adapter.getItemId(position) == value) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; spnr.setSelection(position);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }}您可以像上面这样使用:selectSpinnerItemByValue(spinnerObject, desiredValue);&当然,您也可以直接按索引选择,例如spinnerObject.setSelection(index);

江户川乱折腾

一些解释(至少对于Fragments-从未尝试使用纯Activity)。希望它可以帮助某人更好地了解Android。阿伦·乔治 (Arun George)最受欢迎的答案是正确的,但在某些情况下不起作用。Marco HC使用Runnable&nbsp;的答案是最后的手段,因为它会增加CPU负载。答案是-你应该简单地选择正确的地方打电话到为setSelection() ,例如,它的工作对我来说:@Overridepublic void onResume() {&nbsp; &nbsp; super.onResume();&nbsp; &nbsp; yourSpinner.setSelection(pos);&nbsp;}但是它在onCreateView()中不起作用。我怀疑这是引起该主题兴趣的原因。秘密是,在Android中,您无法以任何方法执行任何操作-oops :(-组件可能尚未准备就绪。作为另一个示例-您无法在onCreateView()和onResume()中都无法滚动ScrollView(在这里查看答案)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android