使用自定义对象在微调器中按ID选择项目

时间:2016-09-30 01:17:59

标签: android arraylist spinner

我有一个班级

zones
int id
String name

然后我创建了这个类的数组列表,并将其设置为arrayadapter,以便在微调器中最终显示(名称字段)。

但如果我有id

,我如何选择programaticaly区域

2 个答案:

答案 0 :(得分:0)

使用适配器类 您可以使用getItem(int position)方法将对象放在适配器中的位置。

在适配器类之外,或者如果适配器位置与您的类ID不匹配,那么要使用类变量ID,您需要这样做。

创建一个类区域

public class Zones{
    private int id;
    private String name;

    public Zones(int id, String name){
       this.id = id;
       this.name = name;
    }

    public int getId(){
      return id;
    }

    public String getName(){
        return name;
    }
}

将类对象存储在列表对象

List<Zones> zonesList = new ArrayList<Zones>();

zonesList.add(new Zones(1, "Finland"));
zonesList.add(new Zones(1, "Sweden"));
zonesList.add(new Zones(1, "Finland"));
zonesList.add(new Zones(1, "Finland"));

要获取具有类id变量的对象,请遍历List并检查id等于给定id的Zones对象。

for(Zones mZones : zonesList){
  if(mZones.getId() == id){ 
     // get the object your are looking for.
  }
}

答案 1 :(得分:0)

创建模型区域

List<Zones> zonesList=new ArrayList<>();
zonesList.add(new Zones(1,"Name1"));
zonesList.add(new Zones(2,"Name2"));
zonesList.add(new Zones(3,"Name3"));

现在设置适配器,

yourSpinner.setAdapter(new ArrayAdapter<>(
                                this,
                                android.R.layout.simple_list_item_1,
                                zonesList
));

然后初始化你的Flash,

((Zones)yourSpinner.getSelectedItem)).getId();

获取所选项目

对于id:

((Zones)yourSpinner.getSelectedItem)).getName();

名称:

yourSpinner.getSelectedItem.toString();

或者只需使用,

{{1}}