Я хочу показать нормальный веб-просмотр, когда приложение подключено к Интернету (на самом деле это то, что у меня есть и что нужно добавить второй фрагмент), но когда оно не подключено к Интернету (оно работает, но оно показывает, что веб-страница недоступна, браузер по умолчанию для Android и я не хочу ее), я хочу показать другой фрагмент с текстовым представлением и кнопкой TRY AGAIN. Есть ли кто-нибудь, кто может мне помочь? Я использую SherlockFragment, и ниже я отправляю код с Webview без другого фрагмента. Спасибо за любой ответ.WebView - нет фрагмента соединения и контента
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.layout, container, false);
if (isOnline()){
WebView myWebView = (WebView) v.findViewById(R.id.id);
final ProgressDialog progressDialog;
progressDialog = new ProgressDialog(getActivity());
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setMessage("Prosím čakajte. Prebieha načítavanie...");
progressDialog.setCancelable(true);
progressDialog.setProgress(0);
progressDialog.show();
myWebView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
if(progressDialog != null)
progressDialog.setProgress(0);
getActivity().setProgress(progress * 1000);
progressDialog.incrementProgressBy(progress);
if (progress == 100 && progressDialog.isShowing())
progressDialog.dismiss();
}
});
myWebView.getSettings().setBuiltInZoomControls(false);
myWebView.getSettings().setSupportZoom(false);
myWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
myWebView.getSettings().setAllowFileAccess(true);
myWebView.getSettings().setDomStorageEnabled(true);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.loadUrl("webpage");
}
else{
Intent intent = new Intent(getActivity(), class.class);
getActivity().startActivity(intent);
}
return v;
}
private boolean isOnline() {
ConnectivityManager conMgr = (ConnectivityManager) context.getSystemService (Context.CONNECTIVITY_SERVICE);
if (conMgr.getActiveNetworkInfo() != null
&& conMgr.getActiveNetworkInfo().isAvailable()
&& conMgr.getActiveNetworkInfo().isConnected()) {
return true;
} else {
Log.v(getTag(), "Internet Connection Not Present");
return false;
}
}
}
LOG CAT
12-08 09:17:57.852: E/AndroidRuntime(17630): FATAL EXCEPTION: main
12-08 09:17:57.852: E/AndroidRuntime(17630): java.lang.NullPointerException
12-08 09:17:57.852: E/AndroidRuntime(17630): at sk.soszm.polytechnicka.Novinky.isOnline(Novinky.java:71)
12-08 09:17:57.852: E/AndroidRuntime(17630): at sk.soszm.polytechnicka.Novinky.onCreateView(Novinky.java:31)
12-08 09:17:57.852: E/AndroidRuntime(17630): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1478)
12-08 09:17:57.852: E/AndroidRuntime(17630): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
12-08 09:17:57.852: E/AndroidRuntime(17630): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
12-08 09:17:57.852: E/AndroidRuntime(17630): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
12-08 09:17:57.852: E/AndroidRuntime(17630): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460)
12-08 09:17:57.852: E/AndroidRuntime(17630): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440)
12-08 09:17:57.852: E/AndroidRuntime(17630): at android.os.Handler.handleCallback(Handler.java:725)
12-08 09:17:57.852: E/AndroidRuntime(17630): at android.os.Handler.dispatchMessage(Handler.java:92)
12-08 09:17:57.852: E/AndroidRuntime(17630): at android.os.Looper.loop(Looper.java:137)
12-08 09:17:57.852: E/AndroidRuntime(17630): at android.app.ActivityThread.main(ActivityThread.java:5039)
12-08 09:17:57.852: E/AndroidRuntime(17630): at java.lang.reflect.Method.invokeNative(Native Method)
12-08 09:17:57.852: E/AndroidRuntime(17630): at java.lang.reflect.Method.invoke(Method.java:511)
12-08 09:17:57.852: E/AndroidRuntime(17630): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
12-08 09:17:57.852: E/AndroidRuntime(17630): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
12-08 09:17:57.852: E/AndroidRuntime(17630): at dalvik.system.NativeStart.main(Native Method)
Спасибо за ответ, я попытался реализовать свой код, но он не работает. Можете ли вы проверить код, который я редактировал, пожалуйста? Благодарю. Также отправляю LogCat – user2900523
@ user2900523 Что такое строка 71? – JoelFernandes
@ user2900523 Кстати, вы дали разрешение ' \t ' в 'AndroidManifest.xml' файл? –
JoelFernandes