2016-11-18 28 views
0

Android WebViewにウェブサイトの一部のみを表示するにはどうすればよいですか?で、Android WebViewにウェブサイトの一部のみを表示するには

<table class="VBlock"> 
<tr class="normal"> 
<th class="VBlock">Class</th> 
<th class="VBlock">Lesson</th> 
<th class="VBlock">Subject</th> 
<th class="VBlock">represented by</th> 
<th class="VBlock">Subject</th> 
<th class="VBlock">Room</th> 
<th class="VBlock">Notes</th> 
</tr> 

... 

</table> 

まあ:

は、このウェブサイトのHTMLコードが表示されるべきであるヘッドブロックと主に各テーブル行のために、このようなスタイルのテーブルの存在するボディブロックが含まれていますWebViewには、特定のテーブル行のみが表示されます。 ArrayListに比較することによって

<th class="VBlock">Class</th> 

:これは、テーブルの列(列内の単語は、最終的なものではなく、単に仮想NOTE)の含有量に依存しなければなりません。 onPageFinishedで

public void getWData(){ 
    final WebView webView1 = (WebView) findViewById(R.id.webView1); 
    webView1.getSettings().setJavaScriptEnabled(true); 
    webView1.getSettings().setBuiltInZoomControls(true); 
    webView1.setWebViewClient(new WebViewClient(){ 
     @Override 
     public void onPageFinished(WebView view, String url) { 
      webView1.loadUrl(""); 
     } 

    }); 
    webView1.loadUrl(url); 

私は「webView1.loadUrl(」「)ののparamsで何かを書くことがあると思う」:私はちょうどウェブ検索、私は一部が見つかった次のコードを書かれている

私は確信が持てません。あなたの助けを事前に

おかげ

+0

ArrayListにはいくつかの値がありますが、テーブルに一致する値だけを取得したいのですが、そうですか? –

+0

はい、まさに私が欲しいものです。 – tb8801

答えて

1

あなたはそれにいくつかの値を持っているのArrayListを持っていると仮定すると、

List<String> list; 

複雑なJavascript関数を生成してここで実行する必要があります。まず、あなたは次のように文字列形式でJavascriptのリストにあなたのArrayListを変換する必要があります。

String listStr = "["; 
for(int i=0; i<list.size(); i++){ 
    listStr += list.get(i); 
    if(i!=list.size()-1) 
     listStr += ","; 
} 
listStr += "]"; 

をこのコードの一部を終了すると、JavaScriptで使用する準備ができて、文字列形式のリストを持っています。

String func = "javascript:(function() { " + 
    "var arrayList = " + listStr + ";" + 
    "var tableRows = document.getElementsByTagName('th');" 
    "for(var j=0; j<tableRows.length; j++){"+ 
    "tableRows[j].style.visibility = 'hidden';"+ 
    "};"+ 
    "for(var i=0; i<arrayList.length; i++){"+ 
     "for(var j=0; j<tableRows.length; j++){"+ 
      "if(tableRows[j].innerHTML != arrayList[i]){"+ 
       "tableRows[j].style.visibility = 'visible';"+ 
      "}"+ 
     "}"+ 
    "}"+ 
"})()"; 

を次に、以下のように、あなたはこのJavaScript関数を実行できます:今、あなたは、次のようにonPageFinishedにloadUrlを変更する必要が

webView1.loadUrl(func); 

は基本的には、このjavascipt機能は、最初にすべてのテーブルの行が非表示になります。その後、あなたの配列を繰り返し、一致するものを見えるようにします。

0

Jsoupを使用します。完全なHTMLコードを提供していないので、私はあなたに例を示すことはできません。

私はあなたにドアを示すことができます。あなたはそれを歩かなければなりません。 :)

希望します。

関連する問題