Android-How для использования фрагмента для отображения веб-просмотра

StackOverflow https://stackoverflow.com/questions/9353276

Вопрос

Я обновляю некоторые из моих старых проектов и использую фрагменты, чтобы обновить внешний вид вещей. Я попытался использовать фрагмент для запуска веб -просмотра, но когда я пытаюсь запустить его, я получаю следующую ошибку в моем 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

То, как я использовал для использования WebView, было просто создать класс, который был его собственным занятием, который имел место в веб -просмотре, но я хотел бы иметь небольшой вид в фрагменте, а затем, когда я хотел использовать класс, я его запустил Через намерения и передайте все, что мне нужно, для WebView, например, URL и другие параметры в дополнениях внутри намерения. Я попробовал просто настройку просмотра веб -сайта в фрагменте, но я еще не получил его работать. Это код, который я использую на данный момент.

    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;

}
}

И тогда это макет для деятельности, которая использует этот фрагмент.

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

Итак, как я могу получить веб -просмотр, чтобы открыть внутри фрагмента, который я могу использовать в представлении.

Это было полезно?

Решение

Вы думали о том, чтобы просто продлить WebViewFragment?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top