Network WebView
2015-09-14 21:48
120 查看
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <TextView android:id="@+id/textview" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:id="@+id/button_connection" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="获取网络连接"/> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> <ProgressBar android:id="@+id/progressbar" android:layout_width="match_parent" android:layout_height="wrap_content" style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal"/> <WebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent"></WebView> <TextView android:id="@+id/textview_error" android:layout_width="match_parent" android:layout_height="match_parent" android:text="加载失败" android:gravity="center" android:visibility="invisible"/> </FrameLayout> </LinearLayout>
public class MainActivity extends Activity implements View.OnClickListener{ private Button mButtonConnection; private TextView mTextView; private ConnectivityManager mConnectivityManager; private WebView mWebView; private TextView mTextViewError; private ProgressBar mProgressBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mProgressBar= (ProgressBar) findViewById(R.id.progressbar); mTextViewError= (TextView) findViewById(R.id.textview_error); mConnectivityManager= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); mButtonConnection= (Button) findViewById(R.id.button_connection); mButtonConnection.setOnClickListener(this); mTextView= (TextView) findViewById(R.id.textview); mWebView= (WebView) findViewById(R.id.webview); mWebView.getSettings().setJavaScriptEnabled(true); //mWebView.getSettings().setBuiltInZoomControls(true); mWebView.setWebViewClient(new WebViewClient(){ @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); mProgressBar.setProgress(View.VISIBLE); } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); mProgressBar.setProgress(View.INVISIBLE); } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { super.onReceivedError(view, errorCode, description, failingUrl); mWebView.setVisibility(View.GONE); mTextViewError.setVisibility(View.VISIBLE); // Toast.makeText(MainActivity.this, "加载失败", Toast.LENGTH_SHORT).show(); mTextViewError.setText("加载失败"); } }); mWebView.setWebChromeClient(new WebChromeClient(){ @Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); mProgressBar.setProgress(newProgress); } }); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode==event.KEYCODE_BACK){ if (mWebView.canGoBack()){ mWebView.goBack(); return true; }else { finish(); } } return super.onKeyDown(keyCode, event); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.button_connection: mWebView.loadUrl("http://www.baidu.com"); // NetworkInfo info= mConnectivityManager.getActiveNetworkInfo(); // if (info!=null&&info.isConnected()){ // Toast.makeText(getApplicationContext(),"有网络连接",Toast.LENGTH_SHORT).show(); // mTextView.setText( info.getTypeName()); // }else { // Toast.makeText(getApplicationContext(),"无网络连接",Toast.LENGTH_SHORT).show(); // mTextView.setText("无网络连接"); // } break; default: break; } } }
相关文章推荐
- 游戏音效资源
- android学习之路之listView的优化问题
- 条款21:必须返回对象时,别妄想返回其reference(Don't try to return a reference when you must return an object)
- Android DbUtils之查询数据库
- php开发微信公众号 第三方平台一键绑定(授权)感言
- android listview中getView重复被调用的问题
- Gradle in Android Studio (2) - 配置Gradle
- Android Studio 使用第三方类库(加载远程依赖)
- Android JNI机制
- iOS开发 8小时时差问题
- cocos进阶教程(1)Lua调用自定义C++类和函数的最佳实践
- Android-对话框
- Android ViewManger解析 从ViewRoot 源码分析invalidate
- Android View 中invalidate() 你所不知道的那些事
- (转)Unity3d的3种截图方法
- Core Animation Basics(apple官方文档翻译与学习02)
- Gradle in Android Studio (1) - 构建系统概述
- Android中如何获取屏幕的高度和宽度
- How to use Endpoint.publish(Object) ?
- PackageManager的使用