好的,我需要在UiBinder中使用许多UiBinder。
好的,在View.ui.xml文件中:
<g:ListBox ui:field='listBox1' visibleItemCount='3' >
<g:item value='1'> Car </g:item>
<g:item value='2'> Car2 </g:item>
<g:item value='3'> Car3 </g:item>
//more item
</g:ListBox>
<g:ListBox ui:field='listBox2' visibleItemCount='3' >
<g:item value='1'> Bike </g:item>
<g:item value='2'> Bike2 </g:item>
<g:item value='3'> Bike3 </g:item>
//more item
</g:ListBox>
// more ui binder ListBox here
谷歌说:现在我只想为一些setMultipleSelect
做一些ListBoxes,所以我可以做一些类似<g:ListBox ui:field='listBox2' visibleItemCount='3' multipleSelect="true" >
的事情,它工作得很好,但是setMultipleSelect(boolean multiple)
被否决了:
@反推荐的公共无效setMultipleSelect(布尔值倍数) 不赞成。使用ListBox(布尔值)设置此列表是否允许多个选择。注意:在列表框中启用多个选择的首选方法是使用ListBox(布尔型)构造函数。使用此方法可以在Internet 6.0上伪造地失败。
这意味着我们不使用setMultipleSelect
,而是使用构造函数ListBox(boolean)
来设置MultipleSelection,下面是我在View.java中所做的工作
@UiField ListBox listBox1;
@UiField ListBox listBox2;
@UiFactory ListBox makeListBox1(){
listBox1=new ListBox(true);
return listBox1;
}
但是,上面的代码将ListBox(true)
应用于所有ListBoxes (listBox1、listBox2等)。我不想所有的ListBoxes都有MultipleSelection
,因为其他的ListBoxes需要single selection only
。
那么,为什么@UiFactory ListBox makeListBox1()
方法会影响到所有的ListBoxes &如何修复它呢?
不确定provided=true
能帮上什么忙吗?
发布于 2014-02-22 06:19:28
试试provided=true
@UiField(provided = true) ListBox listBox1;
public MyClass() {
listBox1=new ListBox(true);
initWidget(uiBinder.createAndBindUi(this));
}
它必须解决你的问题
发布于 2014-02-22 07:28:48
方法的名称不被考虑,只考虑返回类型,因此它用于当前模板中带有该类型的所有小部件。如果您想要某些字段的特定实例,那么就像Maksym所说的那样,只需使用provided=true
,或者您可以将参数传递给您的@UiFactory
方法,以便它能够调整其行为(但这意味着您必须将参数放在ui.xml中的所有列表框中)。
但是,请注意,在GWT2.6中,setMultipleSelect
已被废弃,因为IE6支持正在日落。
https://stackoverflow.com/questions/21953579
复制相似问题