在GWT中选择列表框下拉项

在GWT中选择列表框下拉项,gwt,listbox,Gwt,Listbox,我有一个GWT视图,从中获取下拉列表的值并将其存储在DB中。下拉列表的值为“一”“二”“三”。当我返回到同一个视图,并且数据库中存储了“两个”时,我希望“两个”成为所选项目。然而,目前我唯一能让它起作用的方法是遍历列表框中的每个项目,找到匹配的项目,然后将其设置为选中的项目。有没有更好的方法来实现这一点?我不想保存所选索引。我建议您扩展ListBox并实现TakesValue接口。在这个类中,维护一个列表变量,它保存ListBox中的所有项。setValue和getValue应类似于以下代码段-

我有一个GWT视图,从中获取下拉列表的值并将其存储在DB中。下拉列表的值为“一”“二”“三”。当我返回到同一个视图,并且数据库中存储了“两个”时,我希望“两个”成为所选项目。然而,目前我唯一能让它起作用的方法是遍历列表框中的每个项目,找到匹配的项目,然后将其设置为选中的项目。有没有更好的方法来实现这一点?我不想保存所选索引。

我建议您扩展ListBox并实现TakesValue接口。在这个类中,维护一个列表变量,它保存ListBox中的所有项。setValue和getValue应类似于以下代码段-

private List<String> listItems = new ArrayList<String>();

public class MyListBox extends ListBox implements TakesValue<String>
{
         public void setValue( String value )
         {
        if ( listItems.size() > 0 )
        {
            int valueIndex = 0;
            if ( listItems.contains( value ) )
            {
                valueIndex = listItems.indexOf( value );
                this.value = value;
            }
            setItemSelected( valueIndex, true );
        }
        }

        public String getValue()
        {
        int selectedIndex = super.getSelectedIndex();
        String value = null;
        if ( selectedIndex >= 0 )
        {
            value = super.getValue( selectedIndex );
            if ( "null".equals( value ) )
            {
                value = null;
            }
        }

        return value;
        }

        public void setOptions(List<String> options)
        {
              listItems.clear();
              listItems.addAll( items );
              for ( String item : listItems )
              {
                    addItem( item, item );
              }
        }
}
private List List items=new ArrayList();
公共类MyListBox扩展ListBox实现TakesValue
{
公共void设置值(字符串值)
{
如果(listItems.size()>0)
{
int-valueIndex=0;
if(listItems.contains(值))
{
valueIndex=listItems.indexOf(值);
这个值=值;
}
setItemSelected(valueIndex,true);
}
}
公共字符串getValue()
{
int selectedIndex=super.getSelectedIndex();
字符串值=null;
如果(已选择索引>=0)
{
value=super.getValue(selectedIndex);
如果(“空”。等于(值))
{
值=空;
}
}
返回值;
}
公共无效设置选项(列表选项)
{
listItems.clear();
listItems.addAll(项目);
用于(字符串项:listItems)
{
附加项(项目,项目);
}
}
}

现在只需要从视图java文件中调用listBox.setValue(value)方法。在此之前,必须设置选项。

您使用的是哪个“下拉列表”?GWT的
列表框
值列表框
?GXT的
组合框
?还有什么?它甚至不编译:1<代码>this.value=值值未在类中声明为实例变量;2. <代码>列表项。添加所有(项)
从不声明。3.方法
setOptions
未使用,并且不清楚在何处以及如何使用它。@belgoros,感谢您指出错误。您是第一个期望堆栈溢出中出现可编译代码段的人。坚持下去