Android 如果设备脱机,fragment webview中会弹出警报
如果设备处于脱机状态,我想在fragment webview中显示警报弹出窗口,而不是显示默认消息(“网页…”)。我是android应用开发领域的新手。我添加了progressbar,但我不知道在哪里以及在什么地方包含toast代码来提醒消息。这是我的tabinfo.java tabinfo.javaAndroid 如果设备脱机,fragment webview中会弹出警报,android,android-fragments,webview,toast,android-internet,Android,Android Fragments,Webview,Toast,Android Internet,如果设备处于脱机状态,我想在fragment webview中显示警报弹出窗口,而不是显示默认消息(“网页…”)。我是android应用开发领域的新手。我添加了progressbar,但我不知道在哪里以及在什么地方包含toast代码来提醒消息。这是我的tabinfo.java tabinfo.java public class tabinfo extends Fragment{ public WebView mwebView; ProgressBar bar; pub
public class tabinfo extends Fragment{
public WebView mwebView;
ProgressBar bar;
public tabinfo(){
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.tabinfo, null);
bar = (ProgressBar) rootView.findViewById(R.id.progressBar2);
// initialize bar
mwebView = (WebView) rootView.findViewById(R.id.webview);
mwebView.loadUrl("https://mbasic.facebook.com");
mwebView.getSettings().setJavaScriptEnabled(true);
mwebView.setWebViewClient(new MyWebViewClient());
return rootView;
}
private class MyWebViewClient extends WebViewClient {
@SuppressWarnings("deprecation")
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageStarted(final WebView view, final String url, final Bitmap favicon) {
bar.setVisibility(View.VISIBLE);
// ^^^ use it as it is
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
bar.setVisibility(View.GONE);
// ^^^ use it as it is
super.onPageFinished(view, url);
}
}
}
在MyWebViewClient类中重写onReceivedError方法
@Override
public void onReceivedError(WebView view, int errorCode, String description,
String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
view.loadUrl("about:blank");
ConnectivityManager cm = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
if(cm.getActiveNetworkInfo() != null){
Toast toast = Toast.makeText(context, " Internet Connected", Toast.LENGTH_LONG).show();
}
else
Toast toast = Toast.makeText(MainActivity.this, "No Internet Connection", Toast.LENGTH_LONG).show;
}
显然,
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
感谢@karthik的回复。关于上下文,我有点困惑,它显示错误->“无法解析符号上下文”。请使用getActivity()方法而不是上下文
Context context;
@Override
public void onAttach(Context context) {
super.onAttach(context);
this.context = context;
}