Android 数据为动态时,融合图不工作
我正在使用fusion chart phone gap在我的android应用程序中显示图表 当我使用web视图并提供静态Android 数据为动态时,融合图不工作,android,cordova,fusioncharts,Android,Cordova,Fusioncharts,我正在使用fusion chart phone gap在我的android应用程序中显示图表 当我使用web视图并提供静态html文件时,它工作正常,但我不知道如何处理动态数据,请指导我。 谢谢这是我的密码: java文件 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mWeb = (W
html
文件时,它工作正常,但我不知道如何处理动态数据,请指导我。
谢谢这是我的密码:
java文件
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWeb = (WebView) findViewById(R.id.webview);
mWeb.getSettings().setJavaScriptEnabled(true);
mWeb.getSettings().setPluginsEnabled(true);
// mWeb.loadUrl("file:///android_asset/www/index1.html"); /*working*/
mWeb.loadData(getHTML(), "text/html; charset=UTF-8", null); /*NOT working*/
}
private String getHTML() {
String html = "<html><head><script language=\"JavaScript\"src=\"file:///android_asset/www/FusionCharts.js\"></script></head><body bgcolor=\"#ffffff\"><div id=\"chartdiv\" align=\"center\">The chart will appear within this DIV. This text will be replaced by the chart.</div><script type=\"text/javascript\">FusionCharts.setCurrentRenderer(\"javascript\");var myChart = new FusionCharts(\"file:///android_asset/www/Column3D.swf\", \"myChartId\", \"400\",\"400\");myChart.setXMLData(\"<graph caption='Title' decimalPrecision='0' formatNumberScale='0' showNames='1' xAxisName='XData' yAxisName='YData' ><set name='One' value='120' color='456553' /><set name='Two' value='345' color='234567' /><set name='Three' value='565' color='098765' /></graph>\");myChart.render(\"chartdiv\");</script></body></html>";
return html;
}
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWeb=(WebView)findViewById(R.id.WebView);
mWeb.getSettings().setJavaScriptEnabled(true);
mWeb.getSettings().setPluginsEnabled(true);
//mWeb.loadUrl(“file:///android_asset/www/index1.html);/*工作*/
mWeb.loadData(getHTML(),“text/html;charset=UTF-8”,null);/*不工作*/
}
私有字符串getHTML(){
String html=“图表将显示在此DIV中。此文本将被chart.FusionCharts.setCurrentRenderer(\“javascript\”)替换;var myChart=new FusionCharts(\”file:///android_asset/www/Column3D.swf\“,”myChartId\“,”400\“,”400\”;myChart.setXMLData(\”);myChart.render(\”chartdiv“);”;
返回html;
}
index1.html
<html>
<head>
<script language="JavaScript"
src="file:///android_asset/www/FusionCharts.js"></script>
</head>
<body bgcolor="#ffffff">
<div id="chartdiv" align="center">The chart will appear within
this DIV. This text will be replaced by the chart.</div>
<script type="text/javascript">
FusionCharts.setCurrentRenderer("javascript");
var myChart = new FusionCharts(
"file:///android_asset/www/Column3D.swf", "myChartId", "400",
"400");
myChart
.setXMLData("<graph caption='Title' decimalPrecision='0' formatNumberScale='0' showNames='1' xAxisName='XData' yAxisName='YData' ><set name='One' value='120' color='456553' /><set name='Two' value='345' color='234567' /><set name='Three' value='565' color='098765' /></graph>");
myChart.render("chartdiv");
</script>
</body>
</html>
图表将显示在
此分区。此文本将替换为图表。
setCurrentRenderer(“javascript”);
var myChart=新FusionCharts(
"file:///android_asset/www/Column3D.swf“,”myChartId“,”400“,
"400");
我的图表
.setXMLData(“”);
myChart.render(“chartdiv”);
您可以使用服务器端脚本动态生成XML或JSON数据,
因此,您可以提供脚本的URL,它将动态生成的数据中继到图表
使用数据库中的动态数据创建图表包括以下步骤:
我怀疑loadData()方法无法加载依赖的JavaScript和CSS文件。相反,请使用下面的loadDataWithBaseURL()方法。尝试下面的代码,让我知道这是否为你工作
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWeb = (WebView) findViewById(R.id.webview);
mWeb.getSettings().setJavaScriptEnabled(true);
mWeb.getSettings().setPluginsEnabled(true);
mWeb.loadDataWithBaseURL("", getHTML(), "text/html", "UTF-8", "");
}
private String getHTML() {
String html = "<html><head><script language=\"JavaScript\"src=\"file:///android_asset/www/FusionCharts.js\"></script></head><body bgcolor=\"#ffffff\"><div id=\"chartdiv\" align=\"center\">The chart will appear within this DIV. This text will be replaced by the chart.</div><script type=\"text/javascript\">FusionCharts.setCurrentRenderer(\"javascript\");var myChart = new FusionCharts(\"file:///android_asset/www/Column3D.swf\", \"myChartId\", \"400\",\"400\");myChart.setXMLData(\"<graph caption='Title' decimalPrecision='0' formatNumberScale='0' showNames='1' xAxisName='XData' yAxisName='YData' ><set name='One' value='120' color='456553' /><set name='Two' value='345' color='234567' /><set name='Three' value='565' color='098765' /></graph>\");myChart.render(\"chartdiv\");</script></body></html>";
return html;
}
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWeb=(WebView)findViewById(R.id.WebView);
mWeb.getSettings().setJavaScriptEnabled(true);
mWeb.getSettings().setPluginsEnabled(true);
loadDataWithBaseURL(“,getHTML(),”text/html“,”UTF-8“,”);
}
私有字符串getHTML(){
String html=“图表将显示在此DIV中。此文本将被chart.FusionCharts.setCurrentRenderer(\“javascript\”)替换;var myChart=new FusionCharts(\”file:///android_asset/www/Column3D.swf\“,”myChartId\“,”400\“,”400\”;myChart.setXMLData(\”);myChart.render(\”chartdiv“);”;
返回html;
}
对于使用JSP(Phonegap),该链接可能会有所帮助-运行Java代码后,您在屏幕上看到了什么?