引用: (有源码包)
相信UI设计是很多人头疼的问题,今天看了一个视频是通过webview+html 设计UI界面,想了一想可以将jquery整合进去(我以前是学做网站的,jquery可以实现很多效果)所以做了个demo,我这个demo只是实验下我的猜想是否可行,不是真正的ui设计,所以更多的是效果的实现界面挺难看的。 (demo在附件中)
先上图:
关键代码(demo在附件中):
---------------------------------------------activity
@Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); view = (WebView)findViewById(R.id.wbShwo); view.getSettings().setJavaScriptEnabled(true); view.getSettings().setCacheMode(0); // 注册javascript对象 view.addJavascriptInterface(new JavaScriptMake(view,this),"jsMake"); //加载xml文件 表示 assets 资源 view.loadUrl(""); }-----------------------------------------javascript与java交互类
package com.my;
import org.apache.commons.logging.Log;
import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import android.app.Activity;
import android.webkit.WebView;import android.widget.Toast;public class JavaScriptMake {
private WebView view; private Activity activity ; public JavaScriptMake(WebView view,Activity activity) { this.view = view; this.activity= activity; }/**
* java 将数据传给js 通过loadUrl()调用 js方法 */ public void javaToJs() { view.loadUrl("javascript:iniData('"+inidata()+"')"); } /** * js 将数据传给 java 通过WebView 的addJavascriptInterface()方法 映射一个对象 然后再js中通过javascript:对象.方法(参数)的方式调用 * @param s */ public void jsTojava(String s) { Toast.makeText(activity,s,Toast.LENGTH_SHORT).show(); } /** * 初始化数据 * @return */ public String inidata() { try { //封装json对象 JSONObject jsonObject = new JSONObject(); jsonObject.put("name", "zhangsan"); jsonObject.put("sex", "男"); jsonObject.put("age","16"); JSONObject jsonObject1 = new JSONObject(); jsonObject1.put("name", "lisi"); jsonObject1.put("sex", "男"); jsonObject1.put("age","25"); JSONObject jsonObject2 = new JSONObject(); jsonObject2.put("name", "wangwu"); jsonObject2.put("sex", "男"); jsonObject2.put("age","26"); JSONArray array = new JSONArray(); array.put(jsonObject); array.put(jsonObject1); array.put(jsonObject2); android.util.Log.d("log",array.toString()); return array.toString(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } return ""; }}