zoukankan      html  css  js  c++  java
  • Android 使用HTML布局页面

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript">
        function show(jsondata) {
            var jsonobj = eval(jsondata);
            var table = document.getElementById("ids");
            for ( var y = 0; y < jsonobj.length; y++) {
                var tr = table.insertRow(table.rows.length);
                var td1 = tr.insertCell(0);
                var td2 = tr.insertCell(1);
                var td3 = tr.insertCell(2);
                td1.innerHTML = jsonobj[y].name;
                td2.innerHTML = jsonobj[y].amount;
                td3.innerHTML = "<a href='javascript:contact.call(\""
                        + jsonobj[y].phone + "\")'>" + jsonobj[y].phone + "</a>";<!-- 调用javascript中contact对象的call(String)方法 -->
            }
        }
    </script>
    </head>
    <body onload="javascript:contact.showAll()"><!-- javascript中的一个对象,对象名为contact,其实包含一个方法showAll() -->
        <table id="ids">
            <tr>
                <td width="35%">姓名</td>
                <td width="35%">存款</td>
                <td align="center">电话</td>
            </tr>
        </table>
        <a href="javascript:window.location.reload()">刷新</a>
    </body>
    </html>

    1.以上是布局页面!
    2.在MainActivity对应的Layout文件中,添加一个WebView控件,用于显示上面的html;
    3.获取数据源的两个类:

    public class BeanService {
        public List<Bean> getBeans() {
            List<Bean> list = new ArrayList<Bean>();
            list.add(new Bean(1, "1", "138837416xx", "123"));
            list.add(new Bean(2, "2", "138837416xx", "456"));// public Bean(Integer id, String name, String phone, String amount)
            return list;
        }
    }

    4.修改MainActivity:

    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            WebView wv = (WebView) findViewById(R.id.wv);
            wv.loadUrl("file:///android_asset/index.html");// 加载assets文件夹中的index.html
            wv.getSettings().setJavaScriptEnabled(true);// 设置Javascript可用
            wv.addJavascriptInterface(new Jsobj(wv), "contact");// 向WebView中注入名为contact的对象
        }
    private final class Jsobj {
            private WebView wv;
            public Jsobj(WebView v) {
                this.wv = v;
            }
            public void call(String phone) {// 拨打电话方法
                Intent i = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phone));
                startActivity(i);
            }
            public void showAll() {// 显示所有的数据信息
                List<Bean> list = new BeanService().getBeans();
                JSONArray arr = new JSONArray();
                for (Bean b : list) {
                    JSONObject obj = new JSONObject();
                    try {
                        obj.put("name", b.getName());
                        obj.put("amount", b.getAmount());
                        obj.put("phone", b.getPhone());
                        arr.put(obj);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
                String json = arr.toString();
                wv.loadUrl("javascript:show('" + json + "')");// 调用webview中的show(Jsonobj)方法-javascript方法
            }
        }
    }
  • 相关阅读:
    Python Data Type
    Python 基础二
    Python的基础知识
    查看当前进程
    linux 通过服务名称查找目录
    在linux下登录MySQL,发现无法输入密码?
    多米诺骨牌效应
    MySQL MVCC底层原理详解MySQL MVCC底层原理详解
    C#保留小数点后几位
    在ubuntu服务器上安装mysql并配置外网访问
  • 原文地址:https://www.cnblogs.com/a284628487/p/3066892.html
Copyright © 2011-2022 走看看