如何在GXT中使用SimpleComboBox使用键/值对。我能够在SimpleComboBox中添加一个键,但是如何在SimpleComboBox中添加特定键的值? 后来我想检索密钥的值。 谢谢&问候, 阿南德
答案 0 :(得分:1)
在SimpleComboBox中获取键/值的简单方法是使用类型为BaseModel的ListStore。 BaseModel允许您将数据保存为键/值,如下所示:
SimpleComboBox combo = new SimpleComboBox();
ListStore<BaseModel> store = new ListStore<BaseModel>();
combo.setStore(store);
combo.setDisplayField("name");
// complete the SimpleComboBox properties here.
// Now, we will create data sample for the answer
BaseModel model = new BaseModel();
model.set("id", 1);
model.set("name", "Java");
store.add(model);
BaseModel model = new BaseModel();
model.set("id", 2);
model.set("name", "PHP");
store.add(model);
从代码片段中可以看出,BaseModel将数据存储为键/值对,因此您可以轻松地从SimpleComboBox中获取所选元素,如:
BaseModel selectedModel = (BaseModel) combo.getValue();
String techName = selectedModel.get("name"); // return value of key name
答案 1 :(得分:0)
// MySimpleComboBox extends SimpleComboBox
public MySimpleComboBox(){
super(new ListStore<Person>(new ModelKeyProvider<Person>() {
@Override
public String getKey(Person item) {
return item.id();
}
}), new LabelProvider<Person>() {
@Override
public String getLabel(Person item) {
return item.toString();
}
});
}
我认为这是你想要的(或者你在寻找什么)。