2013-08-17 2 views
0

Я использую разницу в телефоне слияния, чтобы показать диаграмму в приложении для Android.График Fusion не работает, когда данные динамические

, когда я использую веб-представление и предоставляю статический файл 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; 

} 

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> 
+0

Для использования JSP (PhoneGap) связь может быть helpful- http://stackoverflow.com/a/15484680/2515750 – FraZer

+0

Что вы видите на экране после запуска кода Java? –

ответ

1

Я подозреваю, что 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; 

} 
0

Вы можете использовать серверные скрипты для динамического создания данных XML или JSON, Итак, вы можете указать URL-адрес скрипта, который передает динамически сгенерированные данные в диаграмму.

Создание диаграммы с использованием динамических данных из базы данных включает в себя следующие этапы:

  1. Инициировать соединение с базой данных в вашей стороне сервера сценария.
  2. Извлечь данные из базы данных, которые вы хотите показать на диаграмме.
  3. Генерация данных диаграммы (XML или JSON), перебора каждой записи

Связь может быть helpful- http://docs.fusioncharts.com/charts/contents/Code/J2EE/JSP_DB.html

 Смежные вопросы

  • Нет связанных вопросов^_^