Varlıklar dizininden WebView load html


142

Varlıklar dizininden bir html sayfası yüklemeye çalışıyorum. Bunu denedim, ama başarısız oluyor.

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

Ben gerçekten LogCat herhangi bir anlatım hataları almıyorum ...


Diğer yanıtıma bakın: stackoverflow.com/a/8694428/341091
Martin

Yanıtlar:


296

Wv büyük olasılıkla boş olacak şekilde İçerik görünümünü ayarlamadan önce WebView alıyorsunuz.

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

Öyleydi. Başlamak için bu şekilde kullandım, değiştirmeyi denedim, ama şimdi işe yarıyor ... Harika.
AndyD273

Yan not, siyah üzerine beyaz Android'de standart bir görünüm mü? Tüm tablo görünümlerim varsayılan olarak siyah üzerine beyazdır, ancak html'im beyaz üzerine siyah olarak ayarlanmıştır ... Bunları değiştirebilirim, ancak hangisini değiştireceğinden emin değilim.
AndyD273

web sitemde mobil contactus page.html sayfasında bir e-posta adresi var, android uygulamasında webview kullanıyorum ve o weburl contactus .html sayfasını açmak için kullanıyorum e-posta bilinmeyen url şema hatası
Harsha

Android uygulamasında sunucuyu kullanarak HTML DOSYASI nasıl çalıştırılır?

16

Etkinlik oluştururken, setcontentviewsüper çağrıdan sonra (düzeninizi) eklemeniz gerekir . Çünkü setcontentviewxml'yi etkinliğinize bağlayın, böylece almanızın nedeni budur 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 , varlık (lar) klasörüm şu anda yanlış klasörde değilse, her iki durumda da assets developer.android.com/tools/projects/index.html ifadesini belirtir main
Pawel Cioch

Benim
kötüm

0

Buradan kaynak kodunu indirin ( Android varlıklardan html dosyasını açın )

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();
 }
 }
 });
 }
 }
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.