http://www.cnblogs.com/linjiqin/archive/2011/09/05/2167797.html
http://www.cnblogs.com/linjiqin/archive/2011/09/05/2167797.html
http://www.cnblogs.com/linjiqin/archive/2011/09/05/2167797.html
最近在工作中很荣幸使用了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" />