【问题标题】:Set Selected Item of Spinner设置 Spinner 的选定项
【发布时间】:2017-02-10 05:16:22
【问题描述】:

您好,我有以下对象:

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 等来做到这一点,但是当涉及到 Spinner 时,我不知道如何去做,因为我有实际项目而不是位置。

在我的例子中,一个选定的项目将是一个“bankObj”,但正如您从我的代码中看到的那样,我已经覆盖了“toString()”属性以显示文本而不是对象。

所以假设我有一个 id 为 1 的对象,如何将其设置为我的微调器中的当前选定项?

我在堆栈溢出中看到了几个与此类似的问题,例如:How to set selected item of Spinner by value, not by position?,但到目前为止没有一个对我有用。

【问题讨论】:

  • 我不知道你的问题是否正确,但微调器有onItemSelectedListener 接口,它有onItemSelected(AdapterView&lt;?&gt; parent, View arg1, int pos,long id),这可能会对你有所帮助。这给出了适配器中所选项目的位置。
  • 不,该项目是从列表视图中选择的,微调器在同一活动中的表单中。所以基本上当用户点击列表视图中的项目时,微调器应该更改为所选项目的值。在我的情况下,所选项目始终是一个对象。

标签: java android spinner


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-10-23
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多