【问题标题】:how to set spinner selection by text inside it如何通过其中的文本设置微调器选择
【发布时间】:2013-12-03 18:39:54
【问题描述】:

我准备了一个表单,我必须在其中使用同一页面来添加详细信息和编辑详细信息。添加详细信息时,所有字段都将为空白,并且微调器选择将设置为“无选择”。 现在我想设置我要从上一个活动中传递的项目的微调器选择。如何做到这一点? 由于微调器没有任何方法,如 setSelection(String string); 或者有没有其他方法,我可以实现这个机制...

谁能帮帮我...

【问题讨论】:

  • spinner 是 AbsSpinner 的子类,AbsSpinner 有一个方法 setSelection developer.android.com/reference/android/widget/…, boolean)
  • @nidhi_adiga。是的。但我需要按名称而不是 id 设置微调器选择,因为我没有要传递给 setSelection(int position); 的文本的 id。
  • 嘿,我可以这样做吗? category_spinner.setSelection(category_spinner_array_list.indexOf("cat_name"));
  • 如果你得到预期的输出...
  • @nidhi_adiga。是的。我得到了想要的输出。无论如何,谢谢你的回复。

标签: android android-spinner


【解决方案1】:

这就是我所做的,它似乎工作正常

Spinner my_spinner=(Spinner)findViewById(R.id.spn_items);
ArrayAdapter<String> array_spinner=(ArrayAdapter<String>)my_spinner.getAdapter();
    my_spinner.setSelection(array_spinner.getPosition("list item"));

【讨论】:

    【解决方案2】:

    我现在不知道它的使用频率,但我们可以通过其中的文本设置微调器的选择。 Spinner 有方法 setSelection(int position);.

    现在在参数中我们需要传递文本的位置,我们可以通过getIndexOf(Object object)从我们用来绑定到适配器的array_list中获取它,并且对象应该是声明的ArrayList的类型 例如, 如果ArrayList 是String 类型,则要传递给getIndexOf(Object object) 的对象应该是String 类型。

    最后,您将选择设置如下:

    spinner.setSelection ( spinner_array_list.indexOf(string) );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-07
      • 1970-01-01
      • 1970-01-01
      • 2015-08-18
      • 2017-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多