<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>聯(lián)系人列表</title>
    <script type="text/javascript">
    //我們傳入的jsondata是一個數(shù)組如:
    //[{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里面的基本用法,但是我們需要改變這里面的數(shù)據(jù)提供方式

    修改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消息隊列里去,如果發(fā)現(xiàn)它里面新建了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);
            //不保存表單數(shù)據(jù)
            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{
      /**
       * 獲取所有聯(lián)系人
       */
      public void getContacts(){
       handler.post(new Runnable() {
        @Override
        public void run() {
         //可以通過訪問SQLite訪問數(shù)據(jù)庫獲取
         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格式的數(shù)據(jù)
       * @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;

      }

        }



    ---------------------------------------------------------
    專注移動開發(fā)

    Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
    posted on 2010-05-21 20:57 TiGERTiAN 閱讀(2157) 評論(0)  編輯  收藏 所屬分類: Android
    主站蜘蛛池模板: 亚洲精品无码mⅴ在线观看| CAOPORN国产精品免费视频| 亚洲日本VA午夜在线影院| 丰满妇女做a级毛片免费观看 | 亚洲国产精品美女| 黄色一级视频免费| 日本高清在线免费| 国产美女无遮挡免费网站| 久久亚洲成a人片| 亚洲AV无码国产一区二区三区| 中文字幕乱理片免费完整的| 啦啦啦中文在线观看电视剧免费版| 亚洲成AV人在线观看网址| 亚洲短视频在线观看| 国产无遮挡又黄又爽免费网站| 在线观看视频免费国语| 亚洲综合激情视频| 国产成人免费ā片在线观看老同学 | 久久久久久久亚洲精品| 亚洲AV永久无码精品一福利| 久久99精品国产免费观看| 亚洲色欲久久久久综合网| 亚洲国产成人AV网站| 在线观看免费宅男视频| 亚洲乱码在线播放| 中文字幕在线观看免费视频| 亚洲精品~无码抽插| 中国毛片免费观看| 国产亚洲精品a在线观看| 四虎影视久久久免费| 亚洲中文字幕丝袜制服一区| 黄色一级免费网站| 自拍偷自拍亚洲精品第1页| 黄色毛片免费观看| 亚洲av无码一区二区乱子伦as| 国产免费一区二区三区免费视频 | 国产黄色一级毛片亚洲黄片大全| 黄网站色成年片大免费高清| 免费成人午夜视频| 久久国产乱子精品免费女| 亚洲中字慕日产2021|