如何从 ValueListBox 值中删除空值

Posted

技术标签:

【中文标题】如何从 ValueListBox 值中删除空值【英文标题】:How to remove null value from ValueListBox values 【发布时间】:2012-06-25 23:00:00 【问题描述】:

我是 GWT 的新手。我正在编写一个简单的 GWT 程序,我需要使用一个组合框,为此我使用了 ValueListBox 的实例。在那个组合中,我需要列出代表一年中月份的 1 到 12 的数字。但是该组合在末尾附加了 null 值。谁能帮我删除null 值?

    final ValueListBox<Integer> monthCombo = new ValueListBox<Integer>(new Renderer<Integer>() 

            @Override
            public String render(Integer object) 
                return String.valueOf(object);
            

            @Override
            public void render(Integer object, Appendable appendable) throws IOException 
                if (object != null) 

                    String value = render(object);
                    appendable.append(value);
                
            
        );
    monthCombo.setAcceptableValues(getMonthList());
    monthCombo.setValue(1);

    private List<Integer> getMonthList() 
        List<Integer> list = new ArrayList<Integer>();

        for (int i = 1; i <= 12; i++) 
            list.add(i);
        

        return list;
    

【问题讨论】:

【参考方案1】:

setAcceptableValues之前致电setValue

原因是调用setAcceptableValues时的值是null,而ValueListBox会自动将任意值(一般传递给setValue)添加到可接受值列表中(这样该值实际上是set,并且可以由用户选择,如果她选择了另一个值并想回到原来的值,可以重新选择)。首先使用可接受值列表中的值调用 setValue 可以消除此副作用。

见http://code.google.com/p/google-web-toolkit/issues/detail?id=5477

【讨论】:

我刚刚引用了你对之前类似问题的回答,哈哈 :) 我试过了,但它不起作用。我仍然看到 null ......它真的感觉像一个错误,而不是一个功能。我正在运行 2.5-rc1 @ThomasBroyer:如果我们不知道任何可接受的值可能会提前怎么办?如果我们只想要可接受的值,没有空值或空字符串,应该如何使用它?更新:我看到建议使用 setAcceptableValues(Collections.emptyList());,尽管这不起作用【参考方案2】:

引用此question:

注意 setAcceptableValues 会自动添加当前值 (由getValue返回,默认为null)到列表(和setValue 自动将值添加到可接受值列表中,如果 需要)

因此,请尝试颠倒调用 setValue 和 setAcceptableValues 的顺序,如下所示:

monthCombo.setValue(1);
monthCombo.setAcceptableValues(getMonthList());

【讨论】:

以上是关于如何从 ValueListBox 值中删除空值的主要内容,如果未能解决你的问题,请参考以下文章

如何从包含字符串的href值中获取li

如何从数值数组值中删除引号

如何从pyspark数据框列值中删除方括号

如何从 meta_key wordpress 中删除超链接

JavaScript:如何从 JSON 字符串中删除除值中的空格之外的所有空格?

MS Access 在所有值中添加空值