如何在Android应用中打开Web网站呢?谷歌为我们提供了解决方案,现在就让我们一起看一下WebView控件吧。
为了方便总结,就以实现下面这个效果为主线,进行总结:
首先我们先看一下它的布局文件吧,整个界面分为上下两个部分,上部是一个类似于标题栏的效果,它是由两个Button按钮和一个TextView组成的,下部是一个WebView控件,通过AndroidManifest.xml去除系统的标题(如有不懂,请查阅我的上一遍博客:Android常用属性),已达到上图效果。为方便大家自学,下面奉上代码:
- <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">
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:weightSum="1">
- <Button
- android:id="@+id/quit"
- android:layout_gravity="left"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="返回"/>
- <TextView
- android:id="@+id/web"
- android:layout_gravity="center"
- android:gravity="center"
- android:layout_width="222dp"
- android:layout_height="wrap_content"
- android:layout_weight="1.13" />
- <Button
- android:id="@+id/news"
- android:layout_gravity="right"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="刷新"/>
- </LinearLayout>
- <WebView
- android:id="@+id/webView"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"/>
- </LinearLayout>
***我们开始编写我们MainActivity.java:
- public class MainActivity extends Activity {
- private TextView mTextView;
- private WebView mWebView;
- private Button mbreak;
- private Button mnews;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- init();
- }
- public void init(){
- mTextView = (TextView)findViewById(R.id.web);
- mWebView = (WebView)findViewById(R.id.webView);
- mbreak = (Button)findViewById(R.id.quit);
- mnews = (Button)findViewById(R.id.news);
- mbreak.setOnClickListener(new myListener());
- mnews.setOnClickListener(new myListener());
- mWebView.loadUrl("http://www.baidu.com/");//设置打开的网址
- mWebView.setWebChromeClient(new WebChromeClient(){
- @Override
- public void onReceivedTitle(WebView view, String title) {
- super.onReceivedTitle(view, title);
- mTextView.setText(title);//显示打开的网址信息
- }
- });
- mWebView.setWebViewClient(new WebViewClient(){
- @Override
- public boolean shouldOverrideUrlLoading(WebView view, String url) {
- view.loadUrl(url);
- return super.shouldOverrideUrlLoading(view, url);
- }
- });
- }
- //按钮点击事件监听
- class myListener implements View.OnClickListener{
- @Override
- public void onClick(View view) {
- switch (view.getId()){
- case R.id.quit :
- finish();
- break;
- case R.id.news :
- mWebView.reload();
- break;
- }
- }
- }
***不要忘在AndroidManifest.xml中添加使用网络声明:<uses-permission android:name="android.permission.INTERNET"/>
大功告成,我们的WebView初步介绍到此结束。