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);
}
我真的需要幫助來解決我的問題,因爲我的代碼仍然錯誤,我不知道如何解決它。有沒有人可以幫我解決這個問題?
你能舉個例子..?我不明白你的意思,謝謝 –