2016-06-14 7 views
0

Webサイトで何かを見つけて強調表示し、その上でクリックアクションで作成する必要のあるAndroidアプリを作成しています。Androidスタジオ - webView.findAllAsync(テキスト)を使用してウェブサイトのテキストを強調表示し、テキストのクリックアクションで作成

私はこの方法を使用して文字列「テキスト」を探しています:

private void searchInWebViewContent(String text){ 
    webView.findAllAsync(text); 
} 

このコードは、WebViewの中のすべての文字列「テキスト」を見つけると、それらを強調すべきです。

しかし、...私は私のアプリを実行するときに "テキスト"を強調表示されません。

2番目WebSiteで見つかったすべてのハイライトされた文字列 "text"をクリックすると、アクションリスナーを作成する方法が不思議です。

void setFindListener (WebView.FindListener listener){ 

} 

私の問題を解決する方法は誰にも分かりますか? リプレイを待っています。乾杯。

[OK]を最初のものは、今取り組んでいる:

webview.setWebViewClient(new WebViewClient() { 
      @Override 
      public void onPageFinished(WebView view, String url) { 
       if (textToSearch != null && textToSearch != "") { 
        webview.findAllAsync(textToSearch); // is not  supposed to crash 
        try { 
         Method m =  WebView.class.getMethod("setFindIsUp", Boolean.TYPE); 
         m.invoke(webview, true); 
        } catch (Throwable ignored) { 
        } 
       } 
      } 
      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String  url) { 
       view.loadUrl(url); 
       return true; 
      } 
     }); 

答えて

0
webview.setWebViewClient(new WebViewClient() { 
      @Override 
      public void onPageFinished(WebView view, String url) { 
       if (textToSearch != null && textToSearch != "") { 
        webview.findAllAsync(textToSearch); // is not supposed to crash 
// here i dont know how to create OnTouchListener on every textToSearch 
//highlighted word. Here as an example I have just created it on webview 
        webview.setOnTouchListener(new View.OnTouchListener() { 
         @Override 
         public boolean onTouch(View v, MotionEvent event) { 
          if(event.getAction() == MotionEvent.ACTION_UP) { 

           Intent myIntentActivity1 = new Intent(context, MapActivity.class); 
           //call N_X and wait for result 
           startActivity(myIntentActivity1); 

           return true; 
          } 
          return false; 
         } 
        }); 
        try { 
         Method m = WebView.class.getMethod("setFindIsUp", Boolean.TYPE); 
         m.invoke(webview, true); 
        } catch (Throwable ignored) { 
        } 
       } 
      } 
      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       view.loadUrl(url); 
       return true; 
      } 
      void setFindListener (WebView.FindListener listener) 
      { 

      } 

findallasyc法によって設立されたすべての単語にタッチイベントを作成する方法は?

関連する問題