<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-348  評論-598  文章-0  trackbacks-0


    在項目的assets目錄放入index.html文件

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>聯系人列表</title>
    <script type="text/javascript">
    //我們傳入的jsondata是一個數組如:
    //[{id:20,name:"王昌龍",phone:"18701445755"},......] 這樣
     function show(jsondata){
      var jsonobjs = eval(jsondata);
      var table = document.getElementById("personTable");
      for(var y=0; y<jsonobjs.length; y++){
             var tr = table.insertRow(table.rows.length); //添加一行
             tr.onmouseover = function (){
              this.style.backgroundColor= "red";
             }
             tr.onmouseout = function (){
              this.style.backgroundColor= "#000000";
             }
             //添加三列
             var td1 = tr.insertCell(0);
             var td2 = tr.insertCell(1);
             td2.align = "center";
             var td3 = tr.insertCell(2);
             //設置列內容和屬性
             td1.innerHTML = jsonobjs[y].id; 
             //轉義
             td2.innerHTML = "<a href='javascript:partner4java.call(\"5554\")'>"+ jsonobjs[y].name + "</a>"; 
             td3.innerHTML = jsonobjs[y].phone;
      }
     }

     function init(){
      var jsondata  = "[{id:20,name:\"王昌龍\",phone:\"18701445755\"},{id:21,name:\"小妾\",phone:\"18701445755\"}]";
      show(jsondata); 
     }
    </script>
    </head>
    <body bgcolor="#000000" text="#FFFFFF" style="margin:0 0 0 0" onload="javascript:init()">
    //partner4java.personlist()">
     <table border="0" width="100%" id="personTable" cellspacing="0">
      <tr>
       <td width="15%">編號</td><td align="center">姓名</td><td width="15%">電話</td>
      </tr>
     </table>

    </body>
    </html>

    如上,是我們html里面的基本用法,但是我們需要改變這里面的數據提供方式

    修改main.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
     <WebView
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:id="@+id/webView"/>
    </LinearLayout>

    你可以把webView看做嵌入你程序的瀏覽器:

    package cn.partner4java.html;

    import java.util.ArrayList;
    import java.util.List;

    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;

    import cn.partner4java.html.bean.Contact;

    import android.app.Activity;
    import android.os.Bundle;
    import android.os.Handler;
    import android.webkit.WebView;

    public class MainActivity extends Activity {
     private WebView webView;
     //我們用它來完成我們的異步調用 ,當我new這個對象出來,它會綁定到當前
     //activity消息隊列里去,如果發現它里面新建了Runnable,它就會新建一個線程去。。。
     private Handler handler = new Handler();
     @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            webView = (WebView) this.findViewById(R.id.webView);
            //支持javaScript
            webView.getSettings().setJavaScriptEnabled(true);
            //不保存表單數據
            webView.getSettings().setSaveFormData(false);
            //不保存密碼
            webView.getSettings().setSavePassword(false);
            //不支持頁面放大功能
            webView.getSettings().setSupportZoom(false);
          //addJavascriptInterface方法中要綁定的Java對象及方法要運行在另外的線程中,不能運行在構造他的線程中
            //也就是說不能運行在當前的activity線程中
            //就是把這個方法綁定到頁面中,js也可以調用
            //docment:xxx()
            //partner4java:xxx()
            webView.addJavascriptInterface(new Partner4javaJavaScript(), "partner4java");
            //把我們的頁面顯示出來
            webView.loadUrl("file:///android_asset/index.html");
            
        }
     
     private final class Partner4javaJavaScript{
      /**
       * 獲取所有聯系人
       */
      public void getContacts(){
       handler.post(new Runnable() {
        @Override
        public void run() {
         //可以通過訪問SQLite訪問數據庫獲取
         List<Contact> contacts = new ArrayList<Contact>();
         contacts.add(new Contact(12, "王昌龍", "18701445755"));
         contacts.add(new Contact(13, "小妾", "18701445755"));
         webView.loadUrl("javascript:show('"+ buildJson(contacts) +"')");
        }
       });
       
      }
      
      /**
       * 生成Json格式的數據
       * @param contacts
       * @return
       */
      private String buildJson(List<Contact> contacts){
       try {
        JSONArray jsonArray = new JSONArray();
        for(Contact contact:contacts){
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("id", contact.getId());
         jsonObject.put("name", contact.getName());
         jsonObject.put("phone", contact.getPhone());
         jsonArray.put(jsonObject);
        }
        return jsonArray.toString();
       } catch (JSONException e) {
        e.printStackTrace();
       }
       return null;
      }
      
     }
    }

    修改:

    onload="javascript:partner4java.getContacts()">

    然后加入回調方法:

    /**
       * 回調方法
       * @param phone
       */
      public void call(final String phone){
       handler.post(new Runnable() {
        @Override
        public void run() {
         startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+ phone)));
        }
       });
      }

    加入撥號權限:

    <uses-permission android:name="android.permission.CALL_PHONE" />

    還可以:

    webView.setWebChromeClient(new Partner4javaWebClient());

     

     

        private final class Partner4javaWebClient extends WebChromeClient{

          @Override

      public boolean onJsAlert(WebView view, String url, String message, JsResult result) {

          new AlertDialog.Builder(HtmlActivity.this)

      .setTitle("提示信息")      

      .setMessage(message)          

      .setPositiveButton("確定", new DialogInterface.OnClickListener(){

            public void onClick(DialogInterface dialoginterface, int i){}

      }).show();

      return true;

      }

        }



    ---------------------------------------------------------
    專注移動開發

    Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
    posted on 2010-05-21 20:57 TiGERTiAN 閱讀(2149) 評論(0)  編輯  收藏 所屬分類: Android
    主站蜘蛛池模板: 亚洲av麻豆aⅴ无码电影| 亚洲色婷婷六月亚洲婷婷6月| 精品在线观看免费| 国产亚洲一区二区在线观看| 久久精品无码专区免费东京热 | 亚洲xxxxxx| 日本午夜免费福利视频| 久青草视频97国内免费影视| 久久亚洲AV成人出白浆无码国产 | 亚洲香蕉免费有线视频| 热99re久久精品精品免费| 国产免费一区二区三区不卡| 亚洲综合色婷婷在线观看| 亚洲日韩aⅴ在线视频| 我要看WWW免费看插插视频| 你懂得的在线观看免费视频| 亚洲人成网站在线播放2019| 国产l精品国产亚洲区在线观看| 大学生一级特黄的免费大片视频| 两个人看的www免费| 亚洲AV永久无码精品放毛片| 久久精品国产亚洲av水果派| 亚洲Aⅴ无码一区二区二三区软件| 天天影院成人免费观看| 91精品成人免费国产| 亚洲AV成人一区二区三区观看 | 777爽死你无码免费看一二区| 免费精品视频在线| 亚洲粉嫩美白在线| 亚洲影院在线观看| 亚洲熟妇av一区二区三区| 国产无遮挡吃胸膜奶免费看视频| 国产麻豆一精品一AV一免费| 美女尿口扒开图片免费| 免费黄网在线观看| 国产99视频精品免费专区| 国产亚洲精品美女久久久久| 亚洲三级在线免费观看| 亚洲va在线va天堂va四虎| 精品亚洲一区二区三区在线观看 | 精品免费国产一区二区|