Java 在微调器小部件中设置选定项
在我的Android应用程序中,我有一个带有Java 在微调器小部件中设置选定项,java,android,android-widget,android-spinner,Java,Android,Android Widget,Android Spinner,在我的Android应用程序中,我有一个带有微调器的活动。我在onCreate()中使用以下代码创建了它: this.playerPositionSpinner=(微调器)this.findViewById(R.id.player\u position\u text); ArrayAdapter positionsAdapter=ArrayAdapter.createFromResource(这是R.array.positions,android.R.layout.simple\u微调器\u项)
微调器的活动
。我在onCreate()
中使用以下代码创建了它:
this.playerPositionSpinner=(微调器)this.findViewById(R.id.player\u position\u text);
ArrayAdapter positionsAdapter=ArrayAdapter.createFromResource(这是R.array.positions,android.R.layout.simple\u微调器\u项);
positionsAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
此.playerPositionSpinner.setAdapter(位置适配器);
稍后,我想根据我知道在微调器列表中是有效项的字符串设置所选项?所有的Spinner.setSelection()
方法都为该位置使用int
参数。如何在微调器的下拉列表中获取字符串的位置?(您现在发布了一些代码!是的!这大大简化了我的示例。)
我建议在调用setAdapter()后使用:
显然,您可以使用与应用程序相关的内容替换“西瓜”
。在创建和设置微调器的阵列适配器后,您需要调用播放位置微调器。设置选择(位置)
,使用微调器设置选择方法:
,布尔值)
您需要将项目位置的整数值传递给它。要获取值,请使用适配器。这两个链接如何回答问题?Stack Overflow关于“仅链接”的策略回答:“虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效。”我已经查看了这两个问题,但没有找到解决问题的方法。我可能应该在我的问题中添加更多细节。此编辑是对链接的改进,但仍然没有回答我的问题,即当我有一个字符串时如何获得位置。好的,但现在你的答案基本上与我(和肖恩的)相同。。。这是一个什么新的信息,还是一个重复的答案?答案是:它不仅是第一个,而且它解决了从字符串
而不是int
中设置选择的问题。很抱歉,我原来的问题有点模糊。我编辑了更多的细节。请随时更新您的答案。很抱歉,我最初的问题有点模糊。我编辑了更多的细节。如果您觉得需要,请随时更新您的答案。@Code Guru--您只能在为微调器分配了ArrayAdapter
后调用setSelection
。我建议将playerPositionSpinner声明为类成员,然后在onCreate
期间分配它,这样您就可以从其他方法和内部调用微调器classes@mrres1在我编辑时添加的代码中,playerPositionSpinner
前面的this
引用应该是它已经是类成员的线索。我碰巧正在onCreate()
方法中设置所选内容,我编辑的问题中的代码所在的位置。在更详细地查看了API之后,我发现如果需要在另一个方法中设置选择,我可以在我的微调器上调用getAdapter()
。(当然,我也可以将适配器
存储为类成员。)我错过了“稍后我想…”抱歉,但你得到了!
this.playerPositionSpinner = (Spinner) this.findViewById(R.id.player_position_text);
ArrayAdapter<CharSequence> positionsAdapter = ArrayAdapter.createFromResource(this, R.array.positions, android.R.layout.simple_spinner_item);
positionsAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
this.playerPositionSpinner.setAdapter(positionsAdapter);
playerPositionSpinner.setSelection(positionsAdapter.getPosition("Watermelon"));