我有本地选择的Locales实现如下:
NativeSelect selectLang = new NativeSelect();
for (Locale locale : localeProvider.getSupportedLocales()) {
selectLang.setItemCaption(locale, localeProvider.getLabel(locale));
selectLang.addItem(locale);
}
selectLang.setValue(user.getLocale());
selectLang.setNullSelectionAllowed(false);
selectLang.addItemSetChangeListener(new ItemSetChangeListener() {
private static final long serialVersionUID = 4797561043434404341L;
@Override
public void containerItemSetChange(ItemSetChangeEvent event) {
// Locale loc = (Locale)event.getContainer().getValue();
// UI.getCurrent().setLocale(loc);
}
});
我想使用event.getContainer()。getValue(),但是类型为Container的方法getValue()未定义。我怎样才能获得事件的价值?
答案 0 :(得分:0)
答案 1 :(得分:0)
如果要在方法中获取nativeSelect的当前值,可以使用selectLang.getValue():
selectLang.addListener(new ValueChangeListener(){
@Override
public void valueChange(ValueChangeEvent event) {
selectLang.getValue();
}
});
当然,在组件中添加“final”。