2016-10-01 68 views
2

您好,我有以下对象:组选定项目

public class busObj { 

    private int id; 
    private String registrationNo; 
    private String model; 
    private String driver; 
    private String contact; 

    public busObj() { } 

    public busObj(int id, String registrationNo, String model, String driver, String contact) { 
     this.id = id; 
     this.registrationNo = registrationNo; 
     this.model = model; 
     this.driver = driver; 
     this.contact = contact; 
    } 

    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    public String getRegistrationNo() { 
     return registrationNo; 
    } 

    public void setRegistrationNo(String registrationNo) { 
     this.registrationNo = registrationNo; 
    } 

    public String getModel() { 
     return model; 
    } 

    public void setModel(String model) { 
     this.model = model; 
    } 

    public String getDriver() { 
     return driver; 
    } 

    public void setDriver(String driver) { 
     this.driver = driver; 
    } 

    public String getContact() { 
     return contact; 
    } 

    public void setContact(String contact) { 
     this.contact = contact; 
    } 

    @Override 
    public String toString() { 
     return model + " " + registrationNo + " - " + driver; 
    } 
} 

现在我已经创建了这个对象的ArrayList:

ArrayList<busObj> busList; 

然后我用分配给我的适配器和设置我的列表视图:

protected void setBusSpinner() { 
     bAdapter = new ArrayAdapter<busObj>(this, R.layout.simple_list_item, busList); 
     bAdapter.notifyDataSetChanged(); 
     spBus.setAdapter(bAdapter); 
    } 

现在上面的代码中所有的作品,但我的问题是我有同样的活动(而不是片段)的列表,以便当用户点击该列表中的一个项目时,表单中的数据应该被填充。

我可以用EditText和TextView的等,但是当它来到微调,我不知道如何去做它,因为我有实际的项目不是位置。

在我的情况下,一个选定的项目将是一个“bankObj”,但正如你可以从我的代码中看到的,我重写了“toString()”属性来显示文本而不是对象。

所以假如我有1的ID对象如何设置,作为我的微调当前选定的项目?

我见过类似这样像堆栈溢出几个问题:How to set selected item of Spinner by value, not by position?但至今没有一个为我工作。

+0

我不知道我的问题是否正确,但微调控制器有'onItemSelectedListener'接口,它具有'onItemSelected(AdapterView parent,View arg1,int pos,long id)'这可能对你有帮助。这会在适配器中给出所选项目的位置。 –

+0

不,该项目是从列表视图中选择的,微调控件在同一活动中的形式。所以基本上当用户点击列表视图中的项目时,微调器应该改变为所选项目的值。在我的情况下,所选项目始终是一个对象。 – user3718908

回答

0

您是否尝试过让bankObj.getId();