자산 디렉토리에서 Webview로드 HTML


142

자산 디렉토리에서 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);  
    }  
}

LogCat에 오류가 발생하지 않습니다 ...


답변:


296

wv가 아마도 null이되도록 내용보기를 설정하기 전에 WebView를 얻습니다.

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
        }  
    }

그거였다. 나는 그것을 시작하는 그런 식으로 그것을 교환하려고 시도했지만 지금은 작동합니다 ... 쿨.
AndyD273

참고로, 검은 색의 흰색은 Android의 표준 모양입니까? 모든 테이블 뷰는 기본적으로 검은 색으로 흰색이지만 html은 흰색으로 검은 색으로 설정되어 있습니다. 변경할 수는 있지만 어느 것을 변경할지는 확실하지 않습니다.
AndyD273

내 웹 사이트 모바일 contactus page.html 페이지에 하나의 이메일 주소가 포함되어 있습니다 .Android 앱 및 seturl에서 webview를 사용하여 해당 사용자의 weburl contactus .html 페이지를 열려면 이메일을 클릭하십시오 알 수없는 URL 스키마 오류
Harsha

안드로이드 응용 프로그램에서 서버를 사용하여 HTML 파일을 실행하는 방법은 무엇입니까?

16

활동을 생성 할 때마다 setcontentview수퍼 콜 후 (레이아웃)을 추가해야합니다 . setcontentviewxml을 액티비티에 바인딩 하기 때문에 이것이 당신이 얻는 이유 nullpointerexception입니다.

 setContentView(R.layout.webview);  
 webView = (WebView) findViewById(R.id.webView1);
 wv.loadUrl("file:///android_asset/xyz.html");

6
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

2
Andoid doc은 내 자산 폴더가 현재 잘못된 폴더에 있지 않으면 assets developer.android.com/tools/projects/index.html 을 참조합니다 .main
Pawel Cioch

내 나쁜 나는 다른 위치에 동일한 프로젝트의 사본을 가지고 잘못된 사본에 추가하고 있지만 이미지와 함께이 답변은 최고의 stackoverflow.com/questions/18302603/…
Pawel Cioch

0

여기에서 소스 코드 다운로드 ( 자산 android에서 html 파일 열기 )

activity_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>

MainActivity.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();
 }
 }
 });
 }
 }
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.