`
serryzhao
  • 浏览: 116460 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用java来布局activity(贴个代码),动态生成页面,(用WebView实现)

阅读更多
在 上一篇博客中[url]http://serryzhao.iteye.com/blog/873896 [/url] 动态生成了个很丑的页面,怎么让人家客户看啊

为了UI漂亮些,于是今天写了半天用WebView来实现了。

		buf = new StringBuffer();
		buf.append("<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>");
		buf.append("<html xmlns='http://www.w3.org/1999/xhtml'>");
		buf.append("<head><meta http-equiv='Content-Type' content='text/html; charset=utf-8' /><title>tab</title>" +
				"<style type='text/css'>table.tab {	border-collapse:collapse;	border-spacing:0;	width:100%;	color:#000;	font-size:18px;}" +
				"table.tab input{width:200px; height:25px; font-size:16px;} table.tab th {	text-align:right;	padding:3px 0;}table.tab td {	text-align:left;	padding:3px 0;}</style></head>");
		buf.append("<script language='javascript'>  function send2Android(){ " +
				" var car_type = '';	var car_ad = ''; var car_ads = ''; var engine_no = '';	var car_no = '';	var car_discern = '';	var record_no = '';	var driver_no = '';" +
				"	if(null!= document.getElementById('car_type')){		car_type = document.getElementById('car_type').value;	}" +
				"	if(null != document.getElementById('car_ad')){	" +
				"	var temp = document.getElementById('car_ad'); " +
				"	car_ad = document.getElementById('car_ad').value;" +
				"	car_ads = temp[temp.selectedIndex].innerText; }" +
				"	if(null != document.getElementById('car_no')){		car_no = document.getElementById('car_no').value;	}" +
				"	if( null != document.getElementById('engine_no')){		engine_no = document.getElementById('engine_no').value;	}" +
				"	if(null != document.getElementById('car_discern')){		car_discern = document.getElementById('car_discern').value;	}" +
				"	if(null != document.getElementById('record_no')){		record_no = document.getElementById('record_no').value;	}" +
				"	if(null != document.getElementById('driver_no')){		driver_no = document.getElementById('driver_no').value;	}" +
				" window.myjs.runOnAndroidJavaScript(car_type,car_ad,car_ads,car_no,engine_no,car_discern,record_no,driver_no) } </script> ");
		buf.append("<body><table class='tab'>");
		
		for(int i = 0; i<list.size();i++){
			String flag = list.get(i).getFlg();
			if("1".equals(flag)){
				buf.append("<tr><th>类型:</th>");
				buf.append("<td><select id='car_type'>");
				List<SelectBean> selectList = list.get(i).getList();
				for(int i1=0;i1<selectList.size();i1++){
					buf.append("<option value='" + selectList.get(i1).getId()+
							"'>"+selectList.get(i1).getName()+"</option>");
				}
				buf.append("</select></td></tr>");
			}else if("2".equals(flag)){
				buf.append("<tr><th>前缀:</th>");
				buf.append("<td><select id='car_ad'>");
				List<SelectBean> selectList = list.get(i).getList();
				for(int i1=0;i1<selectList.size();i1++){
					buf.append("<option value='" + selectList.get(i1).getId()+
							"'>"+selectList.get(i1).getName()+"</option>");
				}
				buf.append("</select></td></tr>");
			}else if("3".equals(flag)){
				buf.append("<tr><th>号:</th>");
				buf.append("<td><input type='text' name='textfield' id='car_no' /></td></tr>");
			}else if("4".equals(flag)){
				buf.append("<tr><th>号:</th>");
				buf.append("<td><input type='text' name='textfield2' id='engine_no' /></td></tr>");
			}else if("5".equals(flag)){
				buf.append("<tr><th>码:</th>");
				buf.append("<td><input type='text' name='textfield3' id='car_discern' /></td></tr>");
			}else if("6".equals(flag)){
				buf.append("<tr><th>号:</th>");
				buf.append("<td><input type='text' name='textfield4' id='record_no' /></td></tr>");
			}else if("9".equals(flag)){
				buf.append("<tr><th>号:</th>");
				buf.append("<td><input type='text' name='textfield5' id='driver_no' /></td></tr>");
			}
		}
		buf.append("</table></body></html>");
		webView.loadDataWithBaseURL(null, buf.toString(), "text/html", "UTF-8", null);


	class runJavaScript{
		public void runOnAndroidJavaScript(final String car_type,final String car_ad,final String car_ads,final String car_no,
				final String engine_no,final String car_discern,final String record_no,final String driver_no){
			myHandler3.post( new Runnable() {
				@Override
				public void run() {
				}
			});
		}
	}


当然还有和java相互交互,我这里是用android的button控件来调用的js,然后在handler.post中对变量赋值

注意:js中window.myjs.runOnAndroidJavaScript这个方法是调用Activity中 webView.addJavascriptInterface(new runJavaScript(), "myjs");方法中的
runJavaScript这个类中的一个方法,myjs这个名字要js和acitivy中的相互对应

webView.requestFocus();要有不然html 中的text 不能输入
webView.getSettings().setJavaScriptEnabled(true); webView可以执行js
还有写js的时候要细心,避免低级失误。

参考资料 http://www.ways2u.com/?post=201
感谢onelong的博客分享
  • 大小: 23.5 KB
分享到:
评论

相关推荐

    WebView的全面使用及封装

    然后,在Activity的Java代码中找到`WebView`并初始化: ```java WebView webView = findViewById(R.id.webView); webView.getSettings().setJavaScriptEnabled(true); // 启用JavaScript webView.loadUrl(...

    WebView 的简单应用

    总结一下,本教程介绍了如何在Android应用中使用WebView展示网页内容,以及如何利用JavaScript Interface和JSON实现Java与JavaScript之间的双向通信。此外,我们还展示了如何结合HTML5库(如ichartjs)来增强应用的...

    WebView获取视频地址链接.rar

    这段JavaScript代码会查找页面中所有的`&lt;video&gt;`元素,并将第一个视频的`src`属性(即视频链接)传递回Java端。 当然,这种方法依赖于网页结构的固定性,如果视频链接不是直接在`&lt;video&gt;`标签的`src`属性中,而是...

    【Android精品资源】创建UI的新思路:用javascript与Activity进行交互

    传统的Android UI开发主要依赖于XML布局文件和Java代码,但随着Web技术的发展,一种新的思路逐渐崭露头角:利用JavaScript与Android Activity进行交互。这种方法可以借助Web技术的力量,为开发者提供更灵活、更高效...

    android动态生成echarts图形报表

    6. **交互与更新**:由于Echarts是基于JavaScript的,你可以在Android Java代码中调用JavaScript函数来更新图表数据,通过`WebView`的`evaluateJavascript`方法: ```java webView.evaluateJavascript("javascript:...

    webview浏览器

    当检测到下载链接时,启动一个下载任务,使用`DownloadManager`类来管理这些任务,包括请求下载、监控进度、通知用户以及存储下载完成的文件。 5. **权限管理**:为了使用WebView和下载功能,需要在`...

    Android通过iChartJs实现动态图表、报表的显示Demo

    在布局XML文件中添加一个WebView,并在对应的Activity或Fragment中初始化并设置WebView的相关属性,如允许JavaScript执行。 ```xml &lt;WebView android:id="@+id/web_view" android:layout_width="match_parent" ...

    Android创建UI的新思路:用javascript与Activity进行交互

    在Android开发中,传统的UI创建方式通常涉及到XML布局文件、Java或Kotlin代码的结合使用。然而,随着技术的发展,一种新的思路应运而生,那就是利用JavaScript与Android Activity进行交互来构建用户界面。这种方式...

    安卓应用嵌套浏览器实现app应用

    在安卓应用开发中,有时我们需要将网页内容集成到我们的应用中,这通常通过嵌入一个内建的浏览器组件来实现。这种技术使得用户无需离开应用就能浏览网页,提供了更好的用户体验。本教程将引导你了解如何在安卓应用中...

    Android创建UI的新思路:用javascript与Activity进行交互.zip

    在Android开发中,传统的UI创建方式通常涉及到XML布局文件、Java代码以及自定义View的结合使用。然而,随着Web技术的不断发展,一种新的思路逐渐浮现出来:利用JavaScript与Android Activity进行交互来创建UI。这种...

    H5安卓套壳应用(嵌套url)

    为了实现无标题栏显示,可以在布局文件中去掉Activity的TitleBar,或者自定义一个没有标题的Theme。同时,可以通过JavaScript和Java之间的交互,实现H5与原生代码的通信,比如通过`addJavascriptInterface`暴露Java...

    把wap网站生成android的app

    3. 设计布局:在`res/layout/activity_main.xml`中,添加一个WebView控件,并设置其ID,例如: ```xml &lt;WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match...

    网页APP打包源码.zip

    2. **添加Webview**:在主布局文件(如`activity_main.xml`)中,添加一个Webview元素,并为其设置合适的ID,例如`@+id/webView`。 3. **配置Webview**:在对应的Activity类(如MainActivity.java)中,找到Webview...

    Android知识点及重要代码合集 word文档

    11.4 JAVA代码生成选项菜单 134 11.5上下文菜单的编写步骤 135 11.6上下文菜单绑定到 ListView 代码 136 11.7弹出菜单的使用步骤 137 11.8 AlertDialog 常用方法 138 11.9 AlertDialog对话框的使用步骤 140 11.10 ...

    Android代码-医院介绍电子书籍源码.zip

    - 使用手势识别来实现页面滑动翻页效果,提高用户体验。 6. **导航与书签** - 实现章节间的导航,可能使用NavigationView、BottomNavigationView或Action Bar来实现。书签功能可能通过保存特定位置的信息,方便...

    Android调用JavaScript_android源码.zip

    在Android应用开发中,有时我们需要实现Android与JavaScript之间的交互,这通常涉及到WebView组件的使用以及JavaScript接口的调用。在本篇文章中,我们将深入探讨如何在Android应用中调用JavaScript,以及Android...

    Android 和Html5的简单示例

    3. **初始化Webview**:在Activity的Java代码中,实例化WebView并设置相关属性,如加载本地或远程的HTML文件。 ```java WebView webView = findViewById(R.id.webView); webView.getSettings()....

    phonegap访问原生Activity和控制摄象头源码

    - 在PhoneGap中,通过JavaScript接口调用原生Android代码实现对Activity的访问。例如,可能创建了一个自定义插件,该插件在JavaScript端有一个调用方法,当调用此方法时,会在Android端启动一个新的Activity。 - ...

    Android 学习笔记(1)--永远不变的Hello World

    `R.layout.main` 是编译时生成的 R.java 文件中的一个静态整型常量,对应布局资源。在 main.xml 文件中,我们看到一个简单的线性布局(LinearLayout),包含一个 TextView 显示 "Hello World"。 这个布局描述文件...

Global site tag (gtag.js) - Google Analytics