您的位置:首页 > 移动开发

NetWork获取连接状态/WebView的简单用法/当按返回键时返回堆栈内容

2015-09-14 18:55 363 查看

NetWork获取连接状态

1.首先通过连接管理器获取系统的连接服务

2.然后获取当前活动的网络连接信息

3.判断网络连接是否为空以及得到网络连接的类型

private ConnectivityManager mConnectivityManager;
mConnectivityManager= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info=mConnectivityManager.getActiveNetworkInfo();                   //得到当前Activity的网络连接信息
if (info!=null&&info.isConnected()){                                              //判断信息是否为空和网络是否连接
Toast.makeText(getApplication(), "有网络连接", Toast.LENGTH_SHORT).show();
String type=info.getTypeName();                                                //得到连接网络的类型
mTextViewConnect.setText(type);
}else{
Toast.makeText(getApplication(), "无网络连接", Toast.LENGTH_SHORT).show();
mTextViewConnect.setText("无网络连接");
}


WebView的简单用法

1.首先建立一个FramLayout,里面有3个View一个是ProgressBar用于显示加载页面时的进度,一个是WebView用于显示加载的网络页面,最后一个是TextView用于当网络连接失败时显示的界面,

<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ProgressBar
android:id="@+id/connect_progress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="invisible"/>
<WebView
android:id="@+id/connect_webview"
android:layout_width="match_parent"
android:layout_height="match_parent"
></WebView>
<TextView
android:id="@+id/connect_textview_err"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="连接出错"
android:layout_gravity="center"
android:visibility="invisible"/>
</FrameLayout>


2.找到这个webView然后调用setWebViewClient()方法,用于在页面开始时,页面结束时,以及返回错误时的控制和显示

mWebViewConnect= (WebView) findViewById(R.id.connect_webview);
mTextViewErr= (TextView) findViewById(R.id.connect_textview_err);
mProgressBar= (ProgressBar) findViewById(R.id.connect_progress);
//这个方法用于页面开始时、页面结束时、以及返回错误时的控制和显示,
mWebViewConnect.setWebViewClient(new WebViewClient(){

@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
mProgressBar.setVisibility(View.VISIBLE);//显示进度
//                super.onPageStarted(view, url, favicon);
}

@Override
public void onPageFinished(WebView view, String url) {
mProgressBar.setVisibility(View.INVISIBLE);//将progressbar隐藏
//                super.onPageFinished(view, url);
}

@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
mWebViewConnect.setVisibility(View.GONE);//WebView设置为GONE
mTextViewErr.setVisibility(View.VISIBLE);//显示文本信息,提示错误信息
Toast.makeText(getApplicationContext(), "加载失败,请重新输入网址", Toast.LENGTH_SHORT).show();
super.onReceivedError(view, errorCode, description, failingUrl);
}
});


3.然后设置进度条

//这个方法用于设置进程的更新和JavaScript( progress updates and JavaScript alerts are sent here)
mWebViewConnect.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
mProgressBar.setProgress(newProgress);//设置进度,将进度显示在progressBar上
//                super.onProgressChanged(view, newProgress);
}
});


4.最后一定要loadUrl

mWebViewConnect.loadUrl("http://www.baidu.com");  //添加网址,即在View中显示的网址


5.由于在WebView中存在View堆栈的情况要设置当按返回键时要返回上一个View

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode==event.KEYCODE_BACK){                   //判断按键是不是返回键
if (mWebViewConnect.canGoBack()){               //判断webView堆栈中是否有堆栈内容,即是否能返回
mWebViewConnect.goBack();                   //返回上一个堆栈信息
return true;                                //必须返回true否则执行失败
}else{
finish();                                   //当没有堆栈内容时,就关闭掉Activity
return true;
}
}
return super.onKeyDown(keyCode, event);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: