Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GWT Mvp和处理程序_Java_Gwt_Mvp_Gwt Mvp - Fatal编程技术网

Java GWT Mvp和处理程序

Java GWT Mvp和处理程序,java,gwt,mvp,gwt-mvp,Java,Gwt,Mvp,Gwt Mvp,在过去的几个月里,我一直在学习GWT,并发现Mvp是设计项目的最佳方法之一。我读过谷歌的教程 在他们的教程中,他们将ClickHandler放在演示器中。 现在我在构建具有相同HTML id的多个按钮的多个视图类时遇到了问题,然后用户与这些按钮交互。。。如果每个视图有一个按钮,总共有6个按钮。如果用户单击其中一个按钮,该按钮将对同一对象工作6次。。。 因此,我阅读并发现最好将处理程序放在view类上,并为演示者创建一个事件 所以我所做的是: 视图类: rb0.addClickH

在过去的几个月里,我一直在学习GWT,并发现Mvp是设计项目的最佳方法之一。我读过谷歌的教程 在他们的教程中,他们将ClickHandler放在演示器中。 现在我在构建具有相同HTML id的多个按钮的多个视图类时遇到了问题,然后用户与这些按钮交互。。。如果每个视图有一个按钮,总共有6个按钮。如果用户单击其中一个按钮,该按钮将对同一对象工作6次。。。 因此,我阅读并发现最好将处理程序放在view类上,并为演示者创建一个事件

所以我所做的是:

视图类:

         rb0.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {

                selectHandler.onEvent(1);
                System.out.print("rate 1");
            }
        });
         rb1.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {

                    selectHandler.onEvent(2);
                    System.out.print("rate 2");
                }
            });

         rb1.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {

                    selectHandler.onEvent(3);
                    System.out.print("rate 3");
                }
            });

         rb1.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {

                    selectHandler.onEvent(4);
                    System.out.print("rate 4");
                }
            });

         rb1.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {

                    selectHandler.onEvent(5);
                    System.out.print("rate 5");
                }
            });
演示者类:事件处理程序

    private void bind() {
        .
        .
        .

         DoEvent selectHandler = new DoEvent(){
              public void onEvent(int select) {
                  fetchRating(select, user.getUserId());

              }
          };    
          display.setSelectHandler(selectHandler);
对演示者及其视图的调用,从MainPagePresenter类调用:

        presenter = new AssetViewPresenter(rpcService,eventBus,new  AssetView(),result.get(i));

现在我的问题是,当我从视图中单击按钮时,什么都没有发生。。。就像演示者和视图没有连接一样,可能是什么问题?

很抱歉,这是一个愚蠢的错误。。。我的按钮是rb0,rb1,rb2。。。我用相同的按钮id复制了点击处理程序!!!是的,我为自己感到羞耻