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