为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕丝7291255 2019-10-06 11:05:50
我正在开发一个android项目,正在使用一个微调器,该微调器使用从数据库填充的数组适配器。我找不到从列表中以编程方式设置所选项目的方法。例如,如果在微调器中我具有以下各项:第1类2类第3类创建屏幕时,我将如何以编程方式将Category 2选为所选项目。我以为它可能类似于c#IE Spinner.SelectedText =“ Category 2”,但似乎没有任何类似于Android的方法。
查看完整描述

4 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

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


查看完整回答
反对 回复 2019-10-06
?
蝴蝶不菲

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);


查看完整回答
反对 回复 2019-10-06
?
江户川乱折腾

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(在这里查看答案)


查看完整回答
反对 回复 2019-10-06
  • 4 回答
  • 0 关注
  • 335 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信