代码之家  ›  专栏  ›  技术社区  ›  AndyD273

Webview从assets目录加载html

  •  126
  • AndyD273  · 技术社区  · 14 年前

    我正在尝试从assets目录加载一个html页面。我试过了,但失败了。

    public class ViewWeb extends Activity {  
        @Override  
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            WebView wv;  
            wv = (WebView) findViewById(R.id.webView1);  
            wv.loadUrl("file:///android_asset/aboutcertified.html");   // fails here
            setContentView(R.layout.webview);  
        }  
    }
    

    4 回复  |  直到 14 年前
        1
  •  306
  •   Samuel    12 年前

    在设置内容视图之前获取WebView,因此wv可能为空。

    public class ViewWeb extends Activity {  
            @Override  
            public void onCreate(Bundle savedInstanceState) {  
                super.onCreate(savedInstanceState);
                setContentView(R.layout.webview);  
                WebView wv;  
                wv = (WebView) findViewById(R.id.webView1);  
                wv.loadUrl("file:///android_asset/aboutcertified.html");   // now it will not fail here
            }  
        }
    
        2
  •  16
  •   duggu Neeraj Nama    7 年前

    无论何时创建活动,都必须添加 setcontentview (你的布局)在超级呼叫之后。因为 将xml绑定到您的活动中,因此 nullpointerexception .

     setContentView(R.layout.webview);  
     webView = (WebView) findViewById(R.id.webView1);
     wv.loadUrl("file:///android_asset/xyz.html");
    
        3
  •  6
  •   Hitesh Sahu    5 年前
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            WebView wb = new WebView(this);
            wb.loadUrl("file:///android_asset/index.html");
            setContentView(wb);
        }
    
    
    keep your .html in `asset` folder
    
        4
  •  0
  •   Deepshikha Puri    7 年前

    从这里下载源代码( Open html file from assets android )

    活动\u main.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:background="#FFFFFF"
     android:layout_height="match_parent">
    
    <WebView
     android:layout_width="match_parent"
     android:id="@+id/webview"
     android:layout_height="match_parent"
     android:layout_margin="10dp"></WebView>
    </RelativeLayout>
    

    主活动.java

    package com.deepshikha.htmlfromassets;
     import android.app.ProgressDialog;
     import android.support.v7.app.AppCompatActivity;
     import android.os.Bundle;
     import android.webkit.WebView;
     import android.webkit.WebViewClient;
    
    public class MainActivity extends AppCompatActivity {
    
    WebView webview;
     ProgressDialog progressDialog;
    
    @Override
     protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
     init();
     }
    
    private void init(){
     webview = (WebView)findViewById(R.id.webview);
     webview.loadUrl("file:///android_asset/download.html");
     webview.requestFocus();
    
    progressDialog = new ProgressDialog(MainActivity.this);
     progressDialog.setMessage("Loading");
     progressDialog.setCancelable(false);
     progressDialog.show();
    
    webview.setWebViewClient(new WebViewClient() {
    
    public void onPageFinished(WebView view, String url) {
     try {
     progressDialog.dismiss();
     } catch (Exception e) {
     e.printStackTrace();
     }
     }
     });
     }
     }