我有一个微调器,我需要用字符串值填充它,但我还需要保存该字符串的 ID。
我有这个结构要在微调器中显示
public class Item{
private Integer id;
private Double name;
}
我想在微调器中显示名称,但是当我选择一个项目并按下按钮时,我想获得该名称的 ID。
字符串不重复,所以我可以做 Map<Integer, String>
来管理这个,但我想知道是否存在更好的解决方案,比如自定义适配器或微调器的布局,或者为微调器设置一种数据源对象并显示对象的特定属性。
这是我的 spinner_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/spinnerTarget"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="12pt"
android:gravity="center"/>
最佳答案
像这样改变你的模型类
public class Item{
private String id;
private String name;
public String getId() {
return id;
}
public String getName() {
return name;
}
public String toString() {
return getName();
}
}
像这样设置微调器适配器
ArrayAdapter<Item> adapter =
new ArrayAdapter<Item>(getActivity(), android.R.layout.simple_spinner_dropdown_item, dataNew);
spinner.setAdapter(adapter);
现在获取所选项目的 id,
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
//get id of the selected item using position 'i'
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
关于android - 将自定义对象设置为 Spinner 并显示特定属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48931468/