2017-02-14 54 views
0

我有一個IsearchResult對象我需要通過(迭代),以便比較每個結果。我需要通過(迭代)ISearchResult,以便比較日食搜索結果

e.g. I look for (ctrl+H) add method.

and then I have this results' list

我neeed遍歷這個列表(這是店裏的int ISearchResult對象)和查詢的每個結果進行比較。

我有這段代碼。

NewSearchUI.addQueryListener(new IQueryListener() { 

      @Override 
      public void queryStarting(ISearchQuery query) { 
       System.out.println("query start " + query); 

      } 

      @Override 
      public void queryRemoved(ISearchQuery query) { 
      } 

      @Override 
      public void queryFinished(ISearchQuery query) { 
       System.out.println("query finished " + query); 
       System.out.println("result " + query.getSearchResult().getLabel()); 
       query.getSearchResult().addListener(new ISearchResultListener() { 

        @Override 
        public void searchResultChanged(SearchResultEvent e) { 
        } 
       }); 
      } 

      @Override 
      public void queryAdded(ISearchQuery query) { 
      } 

我需要迭代結果列表並比較或提取每個結果的信息。

+0

你卡在哪裏? – nitind

+0

我需要迭代ISearchResult與監聽器,以便知道每個結果 –

回答

1

您無法迭代結果。

您必須將ISearchResultListener添加到queryStarting方法中,並保存在searchResultChanged調用中給出的結果。

NewSearchUI.addQueryListener(new IQueryListener() { 

     @Override 
     public void queryStarting(ISearchQuery query) { 
      System.out.println("query start " + query); 

      // Starting listening to the search query 

      query.getSearchResult().addListener(new ISearchResultListener() { 

       @Override 
       public void searchResultChanged(SearchResultEvent e) { 
        // TODO save the results as they appear 
       } 
      }); 

     } 

     @Override 
     public void queryRemoved(ISearchQuery query) { 
     } 

     @Override 
     public void queryFinished(ISearchQuery query) { 
      System.out.println("query finished " + query); 
      System.out.println("result " + query.getSearchResult().getLabel()); 
     } 

     @Override 
     public void queryAdded(ISearchQuery query) { 
     } 
+0

如果我做了一個java搜索方法我怎麼知道結果列表中的方法的名稱? –

+0

不知道。你將不得不運行代碼並看看你得到了什麼。 –

+0

它返回一個類org.eclipse.jdt.internal.ui.search.JavaSearchResult'的對象。我該如何處理? –