2013-04-16 34 views
0

我正在使用achartEngine在我的android應用程序中繪製線圖。我正在設置代碼中的數據。現在我需要從JSON獲取數據並將其顯示在我的圖形中,但我不知道如何將我的JSON與achartengine連接起來並將其顯示爲線形圖。如何將JSON與圖表引擎庫連接起來

這是我的錯源代碼:

解析JSON

public class ErizaChartEngine extends Activity { 
List NabList = new ArrayList(); 
boolean statuskoneksi= true; 
private ProgressDialog Dialog; 
protected Context context; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    new LineChartAsyncTask().execute(); 
    setContentView(R.layout.layoutchart); 

} 
    public class LineChartAsyncTask extends AsyncTask <String, String, String>{ 

     @Override 
     protected void onPreExecute(){ 
      super.onPreExecute(); 
      Dialog=new ProgressDialog(ErizaChartEngine.this); 
      Dialog.setMessage("Mohon Tunggu Sebentar..."); 
      Dialog.setIndeterminate(false); 
      Dialog.setCancelable(true); 
      Dialog.show(); 
     } 


     @Override 
     protected String doInBackground(String... params) { 
      String url= "http://www.ab.com/NabChart.htm?id=03&nilai=10"; 
      try { 
       JSONParser jp= new JSONParser(); 
       JSONArray ja= jp.takeJson(url); 

       for (int i=0; i<ja.length();i++){ 
        JSONObject jo = ja.getJSONObject(i); 
        HashMap<String, String> map = new HashMap<String, String>(); 
        if (jo.has("lnu_nilai")) 
         map.put("lnu_nilai", jo.get("lnu_nilai").toString()); 
        if (jo.has("tanggal")) 
         map.put("tanggal", jo.get("tanggal").toString()); 
        NabList.add(map); 
        System.out.println("json parser done"); 
       } 
      } 
      catch (JSONException e) { 
        e.printStackTrace(); 
       } 
       return null; 
      } 

     @Override 
     protected void onPostExecute(String file_url) { 
      Dialog.dismiss(); 
} 

這是我來繪製圖形類:

public void drawNABContentSimpleChart 
    (
    String strtanggal, 
    String strNilaiNABHMin0) 
    { 
     XYSeries nabseries = new XYSeries("nab"); 

     for (int i=0;i<NabList.size();i++){ 
      nabseries.add(strNilaiNABHMin0[i]); 
     } 
     XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 
     // Adding Income Series to the dataset 
     dataset.addSeries(nabseries); 

     XYSeriesRenderer incomeRenderer = new XYSeriesRenderer(); 
     incomeRenderer.setColor(Color.WHITE); 
     incomeRenderer.setPointStyle(PointStyle.CIRCLE); 
     incomeRenderer.setFillPoints(true); 
     incomeRenderer.setLineWidth(2); 
     incomeRenderer.setDisplayChartValues(true); 

     XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer(); 
     multiRenderer.setXLabels(0); 
     multiRenderer.setChartTitle("NAB 1 year"); 
     multiRenderer.setXTitle("Year 2012"); 
     multiRenderer.setYTitle("Nilai"); 
     multiRenderer.setZoomButtonsVisible(true);    
     for(int i=0;i<NabList.size();i++){ 
      multiRenderer.addXTextLabel(strtanggal[i]);   
     }  
     multiRenderer.addSeriesRenderer(incomeRenderer); 

// multiRenderer.addSeriesRenderer(expenseRenderer);

 // Creating an intent to plot line chart using dataset and multipleRenderer 
     Intent intent = ChartFactory.getLineChartIntent(getBaseContext(), dataset, multiRenderer); 

     // Start Activity 
     startActivity(intent); 
    } 

我真的需要幫助來解決我的問題,因爲我的代碼仍然錯誤,我不知道如何解決它。有沒有人可以幫我解決這個問題?

回答

0

只是初始化圖表的東西(數據集,渲染),並開始解析你的JSON。將您從文件中讀取的每個數據項添加到數據集中的系列文件中。完成後,顯示圖表。

+0

你能舉個例子..?我不明白你的意思,謝謝 –

相關問題