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); }
相关文章推荐
- 【iOS】APP实现检测更新
- APP推广入门之AppStore数据分析
- 9.14学习笔记 studiojar包生成,android插件,毛玻璃
- Android开发环境搭建
- Android , 浅谈显示Intent和隐式Intent
- 使用WebView弹出不支持localStoragede对话框的问题
- Android硬件抽象层(HAL)概要介绍和学习计划
- iOS 页面显示在键盘之上
- 第三方登录
- OS和android游戏纹理优化和内存优化(cocos2d-x)
- 七牛上传图片,解决使用七牛缺少#import "HappyDNS.h"
- iOS触摸事件总结
- IOS开发中的kvo以及kvc的理解
- Android反调试之 AntiEmulator 检测安卓模拟器
- Android设置默认Launcher
- ios推送
- Android 实时视频采集—MediaRecoder录制
- 如何在 Swift 中使用 CommonCrypto 类进行加密(I)
- 关于Android开发中Activity的启动模式
- android 代码混淆 eclipse