具有文本和值的Android微调器

时间:2014-07-14 13:43:01

标签: android json android-spinner

我有一个jsonArray List,它有两个属性。我想获得选定的名称ID。我正在使用微调工具,但我只能绑定名称的字符串数组。是否有另一个工具,我可以绑定Android上的id和名称。

  

[       { “名称”: “ILKER”, “ID”:55},       { “名称”: “ILKER”, “ID”:5},       {“name”:“MEHMET”,“ID”:3}]

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