Pregunta

Estoy actualizando algunos de mis proyectos más antiguos y usando fragmentos para actualizar el aspecto de las cosas. Traté de usar un fragmento para iniciar una WebView, pero cuando intento ejecutarlo obtengo el siguiente error en mi 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

La forma en que solía usar una vista web era simplemente crear una clase que fuera su propia actividad que tuviera lugar en una vista web, pero me gustaría tener una pequeña vista dentro de un fragmento y luego, cuando quisiera usar la clase, la lanzaría. a través de la intención y pasar todo lo que necesitaba a la vista web como una URL y otros parámetros en extras dentro de la intención. Intenté configurar una WebView dentro de un fragmento, pero todavía no he hecho que funcione. Este es el código que estoy usando por el momento.

    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;

}
}

Y luego este es el diseño de la actividad que usa este fragmento.

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

Entonces, ¿cómo puedo hacer que una webview se abra dentro de un fragmento que pueda usar en una vista?

¿Fue útil?

Solución

¿Has pensado en extender solo WebViewFragment?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top