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