我找到了一個解決方案,使用JSON。我的Java方法返回一個JSONArray,在我的JavaScript代碼中,我收到了這個並使用JSON.parse()轉換爲JavaScript向量。見例如:
的Java:
public class JavaScriptInterface {
Context mContext;
private static int ind=-1;
private static int [] val = { 25, 25, 50, 30, 40, 30, 30, 5, 9 };
public JavaScriptInterface(Context c) {
mContext = c;
}
@JavascriptInterface
public JSONArray getChartData() {
String texto = " [ {name: 'valor1', 2007: "+val[(++ind)%9]+"}, "+
" {name: 'valor2', 2007: "+val[(++ind)%9]+"}, "+
" {name: 'valor3', 2007: "+val[(++ind)%9]+"} ]";
JSONArray jsonar=null;
try {
jsonar = new JSONArray(texto);
} catch (JSONException e) {
e.printStackTrace();
}
return jsonar;
}
}
現在的JavaScript代碼:
window.generateData = function() {
/*var data = [ {name: 'valor1', 2007: 50},
{name: 'valor2', 2007: 20},
{name: 'valor3', 2007: 30} ]; */
var data = JSON.parse(Android.getChartData());
return data;
};
註釋代碼以上展示其靜態的時候怎麼樣,現在的數據從Java代碼來了。
它是Android 2.1和3.2上的睾丸。
沒有辦法陣列? - 我需要傳遞一些「更長」的東西... – 2011-07-23 21:42:25
@Robert Siemer:然後使用JSON。 – CommonsWare 2011-07-23 21:47:20
或...我爲數組中的每個項調用一次Java方法。我希望有少於十個項目... – 2011-07-23 22:03:29