Frage

Ich aktualisiere einige meiner älteren Projekte und verwende Fragmente, um das Aussehen von Dingen zu aktualisieren. Ich habe versucht, ein Fragment zu verwenden, um ein WebView zu starten, aber wenn ich versuche, es auszuführen, erhalte ich den folgenden Fehler in meinem Logcat.

 E/Web Console(22464): Uncaught TypeError: Cannot read property 'addEventListener' of null at    
 http://m.yahoo.com/?.tsrc=yahoo&mobile_view_default=true:1

Die Art und Weise, wie ich ein Webview verwendet habe, bestand darin, nur eine Klasse zu erstellen, die ihre eigene Aktivität war, die in einem Webview stattfand, aber ich möchte eine kleine Ansicht innerhalb eines Fragments haben, und dann, wenn ich die Klasse verwenden wollte, würde ich sie starten Über Absicht und übergeben Sie alles, was ich in die Webview brauchte, wie eine URL und andere Parameter in Extras innerhalb der Absicht. Ich habe versucht, einfach ein Webview in einem Fragment einzurichten, aber ich habe es noch nicht zum Laufen gebracht. Dies ist der Code, den ich für den Moment verwende.

    public class WebViewer extends Fragment {
WebView Wv;
String url = "http://www.yahoo.com";
Activity act;
public WebViewer(){}



@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

}

@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
    this.act = activity;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle  savedInstanceState) {

    View mView = inflater.inflate(R.layout.webview, container);

      Wv = (WebView) mView.findViewById(R.id.webview1);
      Wv.getSettings().setJavaScriptEnabled(true);
      Wv.getSettings().setRenderPriority(RenderPriority.HIGH);
      Wv.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
      Wv.getSettings().setDomStorageEnabled(true);
      Wv.setWebViewClient(new HelloWebViewClient());
      Wv.getSettings().setBuiltInZoomControls(true);
      Wv.setWebChromeClient(new WebChromeClient() {
                public void onProgressChanged(WebView view, int progress)
                {
                    act.setTitle("Loading...");
                    act.setProgress(progress * 100);             
                    if(progress == 100)
                        getActivity().setTitle(R.string.app_name);
                }
            });
      Wv.loadUrl(url);

    return mView;

}
}

Und dann ist dies das Layout für die Aktivität, die dieses Fragment verwendet.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/bggreydotted"
 >

<fragment 
    android:id="@+id/webFragment"
    android:layout_width="150dip"
    android:layout_height="match_parent"
    android:name="my.proj.WebViewer"></fragment>


</LinearLayout>

Wie kann ich also eine Webview in einem Fragment öffnen, das ich in einer Ansicht verwenden kann?

War es hilfreich?

Lösung

Haben Sie darüber nachgedacht, sich nur auszudehnen WebViewfragment?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top