【发布时间】:2014-04-16 04:05:39
【问题描述】:
我有微调器,它包含 value 和 ID ,如下所示:
ID message
--- ----
100 Elephant
120 Lion
125 Cat
153 Dog
165 Bear
这是在我的微调器上仅显示价值的方式:
public class Message {
private Int id;
private String message;
public Int getId() {
return id;
}
public void setId(Int id) {
this.id = id;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
@Override
public String toString() {
return message;
}
这就是我将消息传递到我的适配器的方式:
protected List<Message> messages = null;
ArrayAdapter <Message> arrayadapter = new ArrayAdapter<Message>( activity,android.R.layout.simple_spinner_item,messages);
arrayadapter.setDropDownViewResource(R.layout.textview);
spinner1.setAdapter(arrayadapter);
这就是我从选定微调器获取 ID 的方式:
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int pos, long id) {
Message mSelected = (Message) parent.getItemAtPosition(pos);
Log.i("Id:", mSelected.getId());
}
}
问题是当我尝试根据 ID(例如 ID: 165)而不是值或索引来设置微调器时,我尝试了这种方法:
ArrayAdapter myAdap = (ArrayAdapter) spinner1.getAdapter();
int spinnerPosition = myAdap.getPosition(message.getID());
spinner1.setSelection(Message.getID());
但它返回错误,所以我的问题是,如何根据他们的 ID 在微调器上设置选择?
【问题讨论】:
-
我认为你应该检查一次this link。