我有一个jsonArray List,它有两个属性。我想获得选定的名称ID。我正在使用微调工具,但我只能绑定名称的字符串数组。是否有另一个工具,我可以绑定Android上的id和名称。
[ { “名称”: “ILKER”, “ID”:55}, { “名称”: “ILKER”, “ID”:5}, {“name”:“MEHMET”,“ID”:3}]
答案 0 :(得分:2)
您可以为name创建两个数组,为id字段创建另一个数组。使用微调器绑定名称数组,当用户从微调器中选择任何项目时,您将获得在名称数组中选择的项目的索引,因此使用相同的索引值可以从ID数组中获取相应的ID。
答案 1 :(得分:0)
如果你只想要id&在单个微调器中命名,然后你可以通过采用数据类型字符串的arraylist直接附加这两个。
例如,
Arraylist al = new Arraylist();
al.add(name +“”+ id);
以上代码将解决您的问题。将此arraylist设置为arrayadapter。
答案 2 :(得分:0)
使用自定义数据适配器是最灵活的选择。
ArrayList<MyObject> objects = new ArrayList<MyObject>();
ArrayAdapter<MyObject> adapter = new ArrayAdapter<MyObject>(getContext(), android.R.layout.simple_spinner_item, objects){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
MyObject myObject = getItem(position);
// inflate view, set values, return view
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
MyObject myObject = getItem(position);
// inflate view, set values, return view
}
};
如果您正在寻找快速简便的东西,请将对象的列表/数组绑定到微调器,并覆盖该对象的toString()。
private void test() {
ArrayList<MyObject> objects = new ArrayList<MyObject>();
ArrayAdapter<MyObject> adapter = new ArrayAdapter<MyObject>(getContext(), android.R.layout.simple_spinner_item, objects);
}
class MyObject {
public int Id;
public String Name;
@Override
public String toString() {
return Name + " " + Id;
}
}