gpt4 book ai didi

gwt - 在 GWT 中,如何在 .ui.xml 文件中使用自定义小部件标签,在同一文件中使用和不使用标签参数

转载 作者:行者123 更新时间:2023-12-04 02:50:59 24 4
gpt4 key购买 nike

我正在创建一个自定义小部件,在 UiBinder 中说“CustomWid”。在 CustomWid.java 文件中,我正在编写两个构造函数 一个参数为零的 CustomWid(){....}

 another with some args like 

CustomWid(String a,String b){......}所以,现在我在另一个 .ui.xml 文件中使用我的自定义小部件,在那个 .ui.xml 文件中 当我们给它时它工作正常 <my:CustomWid/>独自的, 当我们喜欢时也很好 <my:CustomWid a="srt1" b="str2"/>独自的但是“我的问题”是每当我试图将一个 .ui.xml 中的两个标签都作为 <my:CustomWid/>
<my:CustomWid a="str1" b="str2"/>
现在当我在一个 .ui.xml 中使用两种类型的标签时它会抛出错误我的意思是如何像预定义标签一样使用我的自定义小部件标签?我正在使用 @uiConstructor , 但它显示错误请开发人员...我需要尽早答复

最佳答案

UiBinder 只会为给定的小部件使用一个构造函数:它的零参数构造函数,或者 @UiConstructor (我很惊讶你说它在使用一个或另一个 call 但不是同时使用时有效:一个应该在每种情况下失败,一个应该在每种情况下成功;如果你没有注释一个带有 @UiConstructor 的构造函数,那么 <my:CustomWid/> 应该总是有效,而 <my:CustomWid a="str1" b="str2"/> 应该总是失败)

这里有两种解决方案:

  • a 使用 setter和 b属性( void setA(String a)void setB(String b) )),并可能稍后检查(例如,在 onLoadonAttach 中)您没有或同时拥有 A 和 B,但不是一个没有另一个(如果那是你的规则)。
  • 使用@UiField(provided = true)当你需要使用 other 构造函数时(如果你选择让 UiBinder 使用零参数构造函数——即没有 @UiConstructor——,那么这意味着你必须将 a="str1" b="str2" 从XML 到 Java 代码:@UiField(provided = true) CustomWid myCustomWid = new CustomWid("str1", "str2"))。

第一个选项是我的偏好。

关于gwt - 在 GWT 中,如何在 .ui.xml 文件中使用自定义小部件标签,在同一文件中使用和不使用标签参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17742020/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com