2011-06-21 5 views
0

私のアプリでは、5つのHTMLページがassetsフォルダに保存されている必要があります。Androidのhtmlページをwebviewのassetsフォルダに保存する

+0

1つのWebビューで5ページを表示するとどういう意味ですか? assetsフォルダから実際にページを読み込む方法は、下記の私の答えを参照してください。 –

+0

@StefanHållénは私の受け入れた答えを見て、私の言いたいことを知っている。 – Kishore

+0

ダウン投票の理由は何ですか? – Kishore

答えて

2

は、私は私が間違っていないよ場合は、実際にSPA(単一ページのアプリケーション)について話している、これを発見し、それが(私の質問を理解するために)Mr.Stefanハレンに捧げられて

`

private WebView mWebView = null;  
    private TextView selectedText = null; 
    private long timeLeft; 
    private int pageIndex; 
    private String pagePath;  
    private String[] pageList; 
    private AssetManager assMan =null;  
    private String path="Courses/Section01"; 
    private int SelectedRow; 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 

      setContentView(R.layout.course); 

      mWebView = (WebView) findViewById(R.id.webview); 

      assMan= this.getAssets(); 

      try { 
       pageList = aMan.list(path); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      pageIndex=0; 

      System.out.println(pageList[0]); 

      System.out.println(pageList.length); 

      pagePath=pageList[pageIndex]; 

      loadWebView(pagePath); 

      Button nextView = (Button) findViewById(R.id.nxt); 

         nextView.setOnClickListener(NextClick); 


     Button previousView = (Button) findViewById(R.id.pre); 
         previousView.setOnClickListener(PreviousClick); 
     } 

     View.OnClickListener PreviousClick = new View.OnClickListener() { 

      public void onClick(View v) { 
       GoPrevious(); 

      } 
     }; 
     View.OnClickListener NextClick = new View.OnClickListener() { 

       public void onClick(View v) { 
        GoNextNews(); 

       } 
      }; 
     private void loadWebView(String s){ 

      //mWebView.loadUrl(s); 

      mWebView.loadUrl("file:///android_asset/htmlFilesFolder/"+s); 

     } 


     private void GoNextNews() { 

      int TotalRows = pageList.length; 

      if ((SelectedRow + 1) < TotalRows) 
      { 
       SelectedRow = SelectedRow + 1; 

       String s=pageList[SelectedRow]; 

       loadWebView(s); 
       } 
     } 

     private void GoPrevious() { 

      if (SelectedRow > 0) 
      { 
       SelectedRow = SelectedRow - 1; 

       String s=pageList[SelectedRow]; 

       loadWebView(s); 

      } 
     } 
}` 
10
WebView webView = (WebView) findViewById(R.id.YourWebView); 
webView.loadUrl("file:///android_asset/your.html"); 
+0

私はHTMLページを読み込む方法を知って、私の質問は、 "5 HTMLページ"単一の "ウェブビュー。 – Kishore

3
<WebView 
    android:id="@+id/testWebView" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent">  
</WebView> 

その後、ナビゲーション湖で、このHTMLページを作成します。あなたは他のページへのナビゲーションを持つHTMLページを取得

WebView webView = (WebView) findViewById(R.id.testWebView); 
webView.loadUrl("file:///android_asset/page1.html"); 

ので:

<body> 

<ul id="menu"> 
    <li><a href="page1.html" title="page 1">Page 1</a></li> 
    <li><a href="page2.html" title="page 2">Page 2</a></li> 
    <li><a href="page3.html" title="page 3">Page 3</a></li> 
    <li><a href="page4.html" title="page 4">Page 4</a></li> 
    <li><a href="page5.html" title="page 5">Page 5</a></li> 
</ul> 


<h1> page 1</h1> 
</body> 

その後、最初のページをロードします

+0

これはHTMLで書かれています。あなたはアンドロイドでそれを行う方法を知っていますか? – Kishore

1

。 proparty routeProviderを持つフレームワークであるAngularjsを見てください。メインのHTMLページに実際に部分的なhtmlページを簡単に読み込むことができます。あなたのプロジェクトにphonegapを追加すれば、アンドロイドとイオスでも機能します。助けて幸せ

http://docs.angularjs.org/tutorial/step_07

http://docs.angularjs.org/tutorial

...

0

私が最初に資産からの内部ディレクトリ(getFilesDir())にhtmlファイルをコピーするために、あなたをお勧めします。次に実行します。

webView.loadUrl( "file://" + getFilesDir()+ "/" /firstPage.html ");

アセットから直接、一部のデバイスで失敗するためです。

関連する問題