如何设置值并在Android微调器中显示文本?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (10)

我需要帮助设置价值并在微调器中显示文字。因为现在我正在通过阵列适配器填充我的微调器:

mySpinner.setAdapter(myAdapter);

现在在我的情况下,我想让微调框像.NET中的下拉框一样。

在文本显示和价值在后端。所以如果我更改下拉框,我可以使用其选定的文本或值。但它并没有在android spinner的情况下发生。

例如:

文字价值 猫10 山5 石9 鱼14 河13 腰17

提问于
用户回答回答于

步骤#1:为你的文本和值对创建一个数据模型

第2步:扩展BaseAdapterArrayAdapter围绕你的数据模型包裹,覆盖getView(),返回任何你想要的显示Spinner本身

步骤3:在选择事件中,使用该位置在数据模型中查找相应的对象,然后查找该值

用户回答回答于

如果你不想通过创建你自己的适配器类,你可以将数据包装在一些必须toString返回你想要在微调器中显示的东西。我使用这样的类:

public class TextItemPair<T> {
    private String text;
    private T item;
    public TextItemPair(String text, T item) {
            this.text = text;
            this.item = item;
    }
    public String getText() {
        return text;
    }
    public T getItem() {
        return item;
    }
    @Override
    public String toString() {
        return getText();
    }
}

当微调改变时:

public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    YourTypeHere t = ((TextItemPair<YourTypeHere>)spinner.getItemAtPosition(position)).getItem();
}

扫码关注云+社区