无法设置微调器的选定项目

时间:2015-04-01 13:35:56

标签: android

我想设置spinner的所选项目:

adapter = new ArrayAdapter<Rue>(this, android.R.layout.simple_spinner_item, db.getAllRues()); // db.getAllRues() has data
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
ruePpale.setAdapter(adapter);
ruePpale.setSelection(adapter.getPosition(db.getRue(p.getDec_decoup_terri_code())), true); // p.getDec_decoup_terri_code() has data

db.getRue代码:

public Rue getRue(String decoup_terri_code) {
    Rue r = new Rue();
    String[] columns = {"decoup_terri_code","decoup_terri_nom"};
    Cursor c = bd.query(T_DECOUP_TERRIT, columns, "decoup_terri_code=?", new String[]{decoup_terri_code}, null, null, null);
    if (c != null && c.getCount() > 0 ) {
        c.moveToFirst();
        r.setDecoup_terri_code(c.getString(0));
        r.setDecoup_terri_nom(c.getString(1));
    }
    return r;
}

问题是在运行时spinner不会自动滚动到所需的项目!我的代码有什么不好?

- 编辑 -

我在类Rue中覆盖了equals方法:

@Override
public boolean equals(Object o) {
    if (!(o instanceof Rue)) {
        return false;
    }
    Rue comp = (Rue) o;
    return (this.getDecoup_terri_code() == comp.getDecoup_terri_code() && this.getDecoup_terri_nom() == comp.getDecoup_terri_nom());
}

但是微调器没有选择项目!

1 个答案:

答案 0 :(得分:0)

好的,在@Selvin的帮助下,我实现了我在问题中发布的equals方法。我将==比较器替换为equals方法。