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

Android控件之WebView

2015-08-17 15:57 405 查看
如何在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初步介绍到此结束。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  web