編輯:關於Android編程
因為Android軟件開發分工目前還沒有細化,程序員往往需要負責軟件界面的開發,雖然軟件的界面圖片已經由美工設計好了,但是如果使用layout技術把軟件做成漂亮的界面確實很困難,而是也比較耗時。Android通過WebView實現了JS代碼與Java代碼互相通信的功能,使的Android軟件的界面開發也可以采用HTML網頁技術,這樣,廣大網頁美工可以參與進Android軟件的界面開發工作,從而讓程序員從中解脫出來。
工程目錄
main.xml
index.html
姓名
存款
電話
刷新
Contact.java<�?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwcmUgY2xhc3M9"brush:java;">
package cn.itcast.domain;
public class Contact {
private Integer id;
private String name;
private String phone;
private Integer amount;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public Integer getAmount() {
return amount;
}
public void setAmount(Integer amount) {
this.amount = amount;
}
public Contact(Integer id, String name, String phone, Integer amount) {
this.id = id;
this.name = name;
this.phone = phone;
this.amount = amount;
}
}
ContactService.java
package cn.itcast.service;
import java.util.ArrayList;
import java.util.List;
import cn.itcast.domain.Contact;
public class ContactService {
/**
* 獲取聯系�
* @return
*/
public List getContacts(){
List contacts = new ArrayList();
contacts.add(new Contact(12, "張明", "13766666666", 13003));
contacts.add(new Contact(23, "小小", "130066006", 122003));
contacts.add(new Contact(98, "李小�", "186768768", 10988787));
contacts.add(new Contact(76, "趙得", "1565622566", 1666));
return contacts;
}
}
MainActivity.java
package cn.itcast.html;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import cn.itcast.domain.Contact;
import cn.itcast.service.ContactService;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.webkit.WebView;
public class MainActivity extends Activity {
private WebView webView;
private ContactService contactService;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webView = (WebView) this.findViewById(R.id.webView);
webView.loadUrl("file:///android_asset/index.html");
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new JSObject(), "contact");//js對象� JSObject(),名稱為contact
contactService = new ContactService();
}
private final class JSObject{
public void call(String phone){
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+ phone));
startActivity(intent);
}
public void showcontacts(){
// [{name:"xxx",amount:600,phone:"13988888"},{name:"bb",amount:200,phone:"1398788"}]
try {
List contacts = contactService.getContacts();
JSONArray jsonArray = new JSONArray();
for(Contact c : contacts){
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", c.getName());
jsonObject.put("amount", c.getAmount());
jsonObject.put("phone", c.getPhone());
jsonArray.put(jsonObject);
}
String json = jsonArray.toString();
webView.loadUrl("javascript:show('"+ json+ "')");
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}
測試結果
版本 日期 作� 說明 V1 2016.07.29 韋東� �1版本,Android部分未寫 表格完畢我是1999年上的大學,物理專業。在大一時,
CoordinatorLayout 實現了多種Material Design中提到的滾動效果。目前這個框架提供了幾種不用寫動畫代碼就能工作的方法,這些效果包括� *讓浮�
顯示地圖和定位對於一個地圖SDK來說,首先要顯示地圖,然後定位到當前城市。這方面百度地圖和高德地圖的處理代碼差不多,下面是兩種地圖sdk顯示並定位的代碼例子:百度地�//
一、意圖Intent我們都知道Android 應用框架中的4大基本組件分別是:活�----繪制一個屏幕的用戶界面,響應用戶交互服�----在後台運行,執行耗時操作或遠程過