步步为营_Android开发课[35]_用户界面之WebView(网络视图)

Focus on technology, enjoy life!—— QQ:804212028

浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305


  • 主题:用户界面之WebView(网络视图)

    -相当于Android中内嵌的网络浏览器,可在APP中打开网页。

    实现效果:

方法一步骤:

1.在要Activity中实例化WebView组件:WebView webView = new WebView(this);

2.调用WebView的loadUrl()方法,设置WevView要显示的网页:

互联网用:webView.loadUrl(“http://www.baidu.com“);

本地文件用:webView.loadUrl(“file:///android_asset/XX.html”); 本地文件存放在:assets 文件中

3.调用Activity的setContentView( )方法来显示网页视图

4.用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面

5.需要在AndroidManifest.xml文件中添加权限

实例代码如下:

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:id="@+id/mainlayout" >

    <WebView
        android:id="@+id/webview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       />
</LinearLayout>

MainActivity.java:

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {

     WebView webview;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webview = new WebView(this);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.loadUrl("https://www.baidu.com/");
      //设置Web视图
        setContentView(webview);
    }

        //覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
                webview.goBack(); //goBack()表示返回WebView的上一页面
                return true;
            }
            return false;
        }
}

别忘了在AndroidManifest.xml里加入权限:

<uses-permission android:name="android.permission.INTERNET"/>

方法二步骤:

1、在布局文件中声明WebView

2、在Activity中实例化WebView

3、调用WebView的loadUrl( )方法,设置WevView要显示的网页

4、为了让WebView能够响应超链接功能,调用setWebViewClient( )方法,设置 WebView视图

5、用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面

6、需要在AndroidManifest.xml文件中添加权限

<uses-permission android:name="android.permission.INTERNET"/>

实例代码如下:

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:id="@+id/mainlayout" >

    <WebView
        android:id="@+id/webview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       />
</LinearLayout>

MainActivity.java:

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {

     WebView webview;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webview = (WebView) findViewById(R.id.webview);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.loadUrl("https://www.baidu.com/");
        webview.setWebViewClient(new Client());
    }

        //覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
                webview.goBack(); //goBack()表示返回WebView的上一页面
                return true;
            }
            return false;
        }  

        private class Client extends WebViewClient {
             public boolean shouldOverrideUrlLoading(WebView view, String url) {
                 view.loadUrl(url);
                 return true;
             }
        }
}

别忘了在AndroidManifest.xml里加入权限:

<uses-permission android:name="android.permission.INTERNET"/>

Focus on technology, enjoy life!—— QQ:804212028

浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305

时间: 2024-08-01 19:29:56

步步为营_Android开发课[35]_用户界面之WebView(网络视图)的相关文章

步步为营_Android开发课[19]_用户界面之ListView(列表视图)

Focus on technology, enjoy life!-- QQ:804212028 浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305 主题:用户界面之ListView(列表视图) -ListView和TextView,Button等控件一样,一样的定义方式和显示方式,所以不再重复学了.但是Android开发中ListView经常适配一些适配器来显示,所以我们要学重点是是ListView的各种适配. List

步步为营_Android开发课[25]_用户界面之ScrollView(滚动视图)

Focus on technology, enjoy life!-- QQ:804212028 浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305 主题:用户界面之ScrollView(滚动视图) - ScrollView滚动视图实例: activity_main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayo

步步为营_Android开发课[22]_用户界面之GridView(网格视图)

Focus on technology, enjoy life!-- QQ:804212028 浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305 主题:用户界面之GridView(网格视图) -九宫格布局就是用它来实现的. GridView实现九宫格(实例): activity_main.xml: <?xml version="1.0" encoding="utf-8"?> &

步步为营_Android开发课[15]_用户界面之TextView(文本视图)

Focus on technology, enjoy life!-- QQ:804212028 浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305 主题:用户界面之TextView(文本视图) TextView控件实例: activity_main.xml源代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xm

步步为营_Android开发课[16]_用户界面之EditText(编辑视图)

Focus on technology, enjoy life!-- QQ:804212028 浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305 主题:用户界面之EditText(编辑视图) EditText控件实例: activity_main.xml源代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xm

步步为营_Android开发课[14]_用户界面之Layout(布局)

Focus on technology, enjoy life!-- QQ:804212028 浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305 主题:用户界面之Layout(布局) -在Android开发中我们有传说中的5大布局,它们的结合使用,画出了APP界面的条条框框. Android中常用的5大布局: 线性布局(LinearLayout):按照垂直或者水平方向布局的组件. 帧布局(FrameLayout):组件

步步为营_Android开发课[13]_用户界面之view(视图)

Focus on technology, enjoy life!-- QQ:804212028 浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305 主题:用户界面之view(视图) -View类是Android的一个超类,这个类几乎包含了所有的屏幕类型.每一个View都有一个用于绘图的画布,这个画布可以进行任意扩展.在游戏开发中叶可以自定义视图(View),这个画布的功能更能满足我们在游戏开发中的需要.在Android中

步步为营_Android开发课[30]_用户界面之ViewFlipper

Focus on technology, enjoy life!-- QQ:804212028 浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305 主题:用户界面之ViewFlipper - ViewFlipper多视图切换(实例) 实现效果: 左右滑动,模拟欢迎界面的图片切换. activity_main.xml: <?xml version="1.0" encoding="utf-8&quo

步步为营_Android开发课[21]_用户界面之Notification(通知栏)

Focus on technology, enjoy life!-- QQ:804212028 浏览链接:http://blog.csdn.net/y18334702058/article/details/44624305 本文资源借助于网友:幻影浪子 - 主题:用户界面之Notification(通知栏) - Notification实例(含系统自带Notification+半自定义Notification+自定义Notification) activity_main.xml: <?xml v