• 二十五、工作要点


    最近在工作中很荣幸使用了WebView控件,一开始以为它只是加载网页而已,没想那么多,等真正使用到了才感觉它的强大。

            

    一、以下是在工作中遇到的一些常用问题

    1、当webview加载网页的时候在标题栏上显示加载进度

    2、隐藏webkit浏览器的地址栏

    3、设置程序的标题为网页的标题

    4、创建菜单

    package com.hrtx.activity;

    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.Window;
    import android.view.MenuItem.OnMenuItemClickListener;
    import android.webkit.WebChromeClient;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;

    public class MainActivity extends Activity {
    private final int MENU_ITEM1 = 1;
    private final int MENU_ITEM2 = 2;

    private final int MENU_GROUP = 0;

    private WebView webView;
    private final static String url=http://10.0.2.2/dstradeprj/mobile/;

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_PROGRESS);
    //让进度条显示在标题栏上
    setContentView(R.layout.main);

    webView
    = (WebView) this.findViewById(R.id.webView);
    webView.getSettings().setJavaScriptEnabled(
    true);
    //当webview加载网页的时候在标题栏上显示加载进度
    webView.setWebChromeClient(new WebChromeClient(){
    @Override
    public void onProgressChanged(WebView view, int progress) {
    //Activity和Webview根据加载程度决定进度条的进度大小
    //当加载到100%的时候进度条自动消失
    MainActivity.this.setProgress(progress * 100);
    }
    });
    webView.loadUrl(url);

    //隐藏webkit浏览器的地址栏
    webView.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
    view.loadUrl(url);
    return true;
    }

    //设置程序的标题为网页的标题
    @Override
    public void onPageFinished(WebView view, String url) {
    if (webView.getTitle() != null) {
    MainActivity.
    this.setTitle(webView.getTitle());
    }
    }
    });
    }

    /**
    * 初始化选项菜单
    */
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    //刷新
    MenuItem aboutMenu=menu.add(MENU_GROUP, MENU_ITEM1, 1 ,"刷新");
    aboutMenu.setOnMenuItemClickListener(
    new OnMenuItemClickListener(){
    public boolean onMenuItemClick(MenuItem item) {
    MainActivity.
    this.webView.loadUrl(url);
    return true;
    }
    });
    //退出
    MenuItem exitMenu=menu.add(MENU_GROUP, MENU_ITEM2, 2, "退出");
    exitMenu.setOnMenuItemClickListener(
    new OnMenuItemClickListener(){
    public boolean onMenuItemClick(MenuItem item) {
    //返回主屏幕
    Intent home = new Intent(Intent.ACTION_MAIN);
    //在A窗口打开B窗口时在Intent中直接加入标志 Intent.FLAG_ACTIVITY_CLEAR_TOP,这样开启B时将会清除该进程空间的所有Activity。
    home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    home.addCategory(Intent.CATEGORY_HOME);
    startActivity(home);
    finish();
    return true;
    }
    });
    return true; // 记得返回true,否则无效
    }

    }

             

     二、设置没有标题栏TitleBar

    设置没有标题栏TitleBar
    1、在values目录下建立一个style.xml,内容如下
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <style name="NewTheme" parent="@android:style/Theme.NoTitleBar">
    </style>
    </resources>


    2、同时要使得你的网页有上网功能和隐藏TitleBar,则需要在AndroidManifesti.xml中加入
    <activity android:name=".MainActivity"
    android:label
    ="@string/app_name"
    android:theme
    ="@android:style/Theme.NoTitleBar">

    添加访问INTERNET权限
    <uses-permission android:name="android.permission.INTERNET" />

  • 相关阅读:
    当扩展方法和类里定义的方法重名时,会优先调用类里自义的方法
    jquery.uploadify不支持MVC的Authorize
    .NET4中多线程并行方法Parallel.ForEach
    http://twitter.github.com/bootstrap/
    .NET 4.0中使用sqlite
    Extend Html.EditorFor MVC
    Custom Email Attribute在客户端不起作用原因
    使用webpack搭建vue环境
    新浪sae对storage的文档进行读写操作
    jquery+bootstrap插件
  • 原文地址:https://www.cnblogs.com/linjiqin/p/2167797.html
Copyright © 2020-2023  润新知