随笔 - 1357  文章 - 0  评论 - 1104  阅读 - 1941万

二十五、工作要点

最近在工作中很荣幸使用了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" />
复制代码

 

posted on   Ruthless  阅读(1570)  评论(2编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
< 2011年9月 >
28 29 30 31 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示