当前位置: 代码迷 >> Web前端 >> android经过webview+jquery设计界面
  详细解决方案

android经过webview+jquery设计界面

热度:341   发布时间:2012-08-03 00:12:14.0
android通过webview+jquery设计界面

??相信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文件file:///android_asset 表示 assets 资源
??????? view.loadUrl("file:///android_asset/test.html");
??? }

-----------------------------------------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 "";
?}
}

?
?
?

1 楼 gundumw100 2012-05-31  
没有用jquery mobile试试?
  相关解决方案