首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >uibinder gwt方法调用

uibinder gwt方法调用
EN

Stack Overflow用户
提问于 2013-01-17 18:57:03
回答 2查看 905关注 0票数 1

目前我正在努力适应GWT和UiBinder。但是我不能解决这个问题。下面是一个向您展示我的意思的示例:

MainMenu.ui.xml

代码语言:javascript
复制
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:gwt="urn:import:com.google.gwt.user.client.ui" xmlns:my="urn:import:com.wn.webapp.client.UiBinder">

   <gwt:VerticalPanel>
     <my:TopMenu/>
     <gwt:VerticalPanel>
         <gwt:HTMLPanel>
             <gwt:TextBox/>
         </gwt:HTMLPanel>
         <my:ItemList/>
         <my:PageMenu/>
     </gwt:VerticalPanel>
   </gwt:VerticalPanel>
</ui:UiBinder

我创建了一个MainMenu,并在其中嵌入了一些ui.xml文件。这可以很好地工作。这个网站看起来不错。

但是我该怎么做呢?这是我嵌入到MainMenu.ui.xml中的PageMenu.ui.xml文件的代码。

代码语言:javascript
复制
public class PageMenu extends Composite{

  private static PageMenuUiBinder uiBinder = GWT.create(PageMenuUiBinder.class);

  interface PageMenuUiBinder extends UiBinderWidget, PageMenu{}

  public PageMenu(){
      initWidget(uiBinder.createAndBindUi(this));
  }

  public void setButtonText(ArrayListString textIds){
       //doessomething
  }
}

现在我想给前任打电话。onModuleLoad()中的setButtonText()方法。

代码语言:javascript
复制
public void onModuleLoad()
{
    MainMenu mainmenu = new MainMenu();
    RootPanel.get().add(this.mainmenu);
    // call it here (setButtonText())
}

我该怎么做呢?

问候Laura (我还不是一个有经验的程序员。所以,请注意,当您尝试回答:D) THX时

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-17 20:23:31

要访问button.setText(),您必须先访问button。因此,您的PageMenu.ui.xml必须具有以下内容:

代码语言:javascript
复制
<gwt:Button ui:field="button" />

并且您的PageMenu.java必须有字段声明:

代码语言:javascript
复制
@UiField
Button button;

为PageMenu (在MainMenu)和按钮(在PageMenu)实现getters,然后您可以执行以下操作:

代码语言:javascript
复制
public void onModuleLoad()
{
    MainMenu mainmenu = new MainMenu();
    RootPanel.get().add(this.mainmenu);
    mainmenu.getPageMenu().getButton().setText("What you want.");
}
票数 0
EN

Stack Overflow用户

发布于 2013-01-17 22:51:56

你必须创建两个访问器:

PageMenu.java

  • getPageMenu()中的
  • getButton() in MainMenu.java

您现在可以使用以下命令调用它

代码语言:javascript
复制
mainMenu.getPageMenu().getButton().setText("your text");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14377534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档