var data = google.visualization.arrayToDataTable(JSON.parse(newRows), false);
我无法传递arrayToDataTable()
var 数据中的数据,因为newRows
字符串数据无法获取 newRows 数据。所以请帮忙..
我在下面插入了我的代码,如何获取GeoChart
.
GeoChartData.java
public class GeoChartData {
int id;
String Country;
String Total;
@JavascriptInterface
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@JavascriptInterface
public String getCountry() {
return Country;
}
public void setCountry(String country) {
Country = country;
}
@JavascriptInterface
public String getTotal() {
return Total;
}
public void setTotal(String total) {
Total = total;
}
@Override
public String toString() {
return "\n[" + "'" + Country + "'"+ ":" +Integer.valueOf(Total)+ "]";
}}
GeoChartActivity.java
@SuppressLint("SetJavaScriptEnabled")
public class GeoChartActivity extends Activity {
WebView webView;
int num1, num2;
List listOfCountry;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_geo_chart);
num1 = 390;
webView = (WebView)findViewById(R.id.web);
webView.addJavascriptInterface(new WebAppInterface(), "Android");
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("file:///android_asset/geochart.html");
webView.setPadding(0, 0, 0, 0);
}
public class WebAppInterface {
@JavascriptInterface
public String getArrayGeoChartData() {
// System.out.println(listOfCountry.toString());
return String.valueOf(getCountryData());
}
@JavascriptInterface
public int getNum1() {
return num1;
}
}
public List getCountryData() {
listOfCountry = new ArrayList<>();
GeoChartData s1 = new GeoChartData();
s1.setId(100);
s1.setCountry("Germany");
s1.setTotal("200");
listOfCountry.add(s1);
GeoChartData s2 = new GeoChartData();
s2.setId(101);
s2.setCountry("Canada");
s2.setTotal("200");
listOfCountry.add(s2);
return listOfCountry;
} }
资产/geochart.html
<html>
<head>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {
'packages':['geochart'],
// Note: you will need to get a mapsApiKey for your project.
// See: https://developers.google.com/chart/interactive/docs/basic_load_libs#load-settings
'mapsApiKey': 'AIzaSyD-9tSrke72PouQMnMX-a7eZSW0jkFMBWY'
});
google.charts.setOnLoadCallback(drawRegionsMap);
var newRows = [];
var rowData = [];
var dataTable = null;
function drawRegionsMap() {
//console.log(Android.getArrayGeoChartData());
var jsonString = Android.getArrayGeoChartData(); // json string of array
console.log(jsonString);
newRows.push(jsonString);
console.log(newRows);
var dataArray = ["['Country', 'Popularity']"];
console.log(dataArray);
console.log(dataArray.push(dataArray, newRows));
var data = google.visualization.arrayToDataTable(JSON.parse(newRows), false);
//data.setColumnProperty ('Country', 'Popularity');
var csv = google.visualization.dataTableToCsv(data);
console.log(csv);
// console.log("france" +Android.getNum1());
var options = {};
var chart = new google.visualization.GeoChart(document.getElementById('regions_div'));
chart.draw(data, options);
}
</script>
</head>
<body>
<div id="regions_div" style="width: 900px; height: 500px;"></div>
</body>
</html>
发生错误