您的位置:首页 > 移动开发 > Android开发

android基础--采用HTML实现软件界面

2011-10-18 17:46 411 查看
可以直接修改网页不用更新客户端

public class MainActivity extends Activity {

private WebView webView;

private ContactService contactService ;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

contactService = new ContactService();

webView = (WebView) this.findViewById(R.id.webView);

webView.getSettings().setJavaScriptEnabled(true);//使webView能支持js

webView.addJavascriptInterface(new JSObject(), "contact");

webView.loadUrl("file:///android_asset/index.html");//根据路径载入网页

}

private final class JSObject{

public void showContact(){

JSONArray jsonArray;

try {

List<Contact> contacts = contactService.getContacts();

jsonArray = new JSONArray();

for(Contact contact:contacts){

JSONObject jsonObject = new JSONObject();

jsonObject.put("name", contact.getName());

jsonObject.put("amount", contact.getAmount());

jsonObject.put("phone", contact.getPhone());

jsonArray.put(jsonObject);

String json = jsonArray.toString();

webView.loadUrl("javascript:show('"+json+"')");

}

} catch (Exception e) {

e.printStackTrace();

}

}

public void call(String phone){

Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phone));

startActivity(intent);

}

}

}

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>Insert title here</title>
<script type="text/javascript">
function show(jsondata){// "[{name:"xxx",amount:90,phone:"1339940444"},{name:"bbb",amount:90,phone:"1339940444"}]"
var jsonobjs = eval(jsondata);
var table = document.getElementById("personTable");
for(var y=0; y<jsonobjs.length; y++){
var tr = table.insertRow(table.rows.length); //添加一行
//添加三列
var td1 = tr.insertCell(0);
var td2 = tr.insertCell(1);
td2.align = "center";
var td3 = tr.insertCell(2);
td3.align = "center";
//设置列内容和属性
td1.innerHTML = jsonobjs[y].name;
td2.innerHTML = jsonobjs[y].amount;
td3.innerHTML = "<a href='javascript:contact.call(\""+ jsonobjs[y].phone+ "\")'>"+ jsonobjs[y].phone+ "</a>";

}
}
</script>

</head>
<!-- js代码通过webView调用其插件中的java代码 -->
<body onload="javascript:contact.showContact()">
<table border="0" width="100%" id="personTable" cellspacing="0">
<tr>
<td width="40%">姓名</td><td width="30%" align="center">存款额</td><td align="center">电话</td>
</tr>
</table>
<a href="javascript:window.location.reload()">刷新</a>
<img src="images/ss.gif" width="200"/>
</body>
</html>

一个javabean 。。。

一个service

public class ContactService {

public List<Contact> getContacts(){

List<Contact> contacts = new ArrayList<Contact>();

contacts.add(new Contact(22, "小A", "123",111111));

contacts.add(new Contact(22, "小b", "223",222222));

contacts.add(new Contact(22, "小c", "323",333333));

return contacts;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: