gpt4 book ai didi

java - 使用图表引擎上的数据库中的远程数据生成图形

转载 作者:行者123 更新时间:2023-11-30 04:14:28 25 4
gpt4 key购买 nike

我正在尝试使用 achartengine 生成图表,它从数据库中提取数据并使用数据填充图表。以下是填充图表的代码。所有数据都存储在

“数据数组列表”。此代码将数据填充到图形中

        CategorySeries series = new CategorySeries("Bar Graph");     //"series" = graph
for(int i=0; i< size; i++)
{
series.add("Bar"+(i+1), dataArraylist.get(i)); //add each of the value to the series i.e graph
}


XYMultipleSeriesDataset dataset= new XYMultipleSeriesDataset();
dataset.addSeries(series.toXYSeries()); //add the graph into a dataset


// customisation for the first line
XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setDisplayChartValues(true);
renderer.setChartValuesSpacing((float) 0.5);
renderer.setColor(Color.WHITE);

XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer(); //create a new renderer.
mRenderer.addSeriesRenderer(renderer); //renderer lets one to change the proerties of the graph i.e line colour etc
mRenderer.setXTitle("X VALUES");
mRenderer.setXTitle("Y VALUES");

mRenderer.setChartTitle("This is title");

Intent intent = ChartFactory.getBarChartIntent(context, dataset, mRenderer,Type.DEFAULT, "Title"); //package the whole chart together


return intent;

然而,当我尝试编译它时,出现空异常错误,以下是空异常后收到的错误:

                       04-07 21:09:31.713: E/AndroidRuntime(4091): java.lang.IllegalStateException: Could not execute method of the activity

我在将数据从一个 Activity 传递到图形 Activity 时也遇到了问题。一个答案将不胜感激

完整的日志是:

                   04-07 21:09:31.674: D/AndroidRuntime(4091): Shutting down VM
04-07 21:09:31.674: W/dalvikvm(4091): threadid=1: thread exiting with uncaught exception (group=0x40015560)
04-07 21:09:31.713: E/AndroidRuntime(4091): FATAL EXCEPTION: main
04-07 21:09:31.713: E/AndroidRuntime(4091): java.lang.IllegalStateException: Could not execute method of the activity
04-07 21:09:31.713: E/AndroidRuntime(4091): at android.view.View$1.onClick(View.java:2144)
04-07 21:09:31.713: E/AndroidRuntime(4091): at android.view.View.performClick(View.java:2485)
04-07 21:09:31.713: E/AndroidRuntime(4091): at android.view.View$PerformClick.run(View.java:9080)
04-07 21:09:31.713: E/AndroidRuntime(4091): at android.os.Handler.handleCallback(Handler.java:587)
04-07 21:09:31.713: E/AndroidRuntime(4091): at android.os.Handler.dispatchMessage(Handler.java:92)
04-07 21:09:31.713: E/AndroidRuntime(4091): at android.os.Looper.loop(Looper.java:123)
04-07 21:09:31.713: E/AndroidRuntime(4091): at android.app.ActivityThread.main(ActivityThread.java:3683)
04-07 21:09:31.713: E/AndroidRuntime(4091): at java.lang.reflect.Method.invokeNative(Native Method)
04-07 21:09:31.713: E/AndroidRuntime(4091): at java.lang.reflect.Method.invoke(Method.java:507)
04-07 21:09:31.713: E/AndroidRuntime(4091): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-07 21:09:31.713: E/AndroidRuntime(4091): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-07 21:09:31.713: E/AndroidRuntime(4091): at dalvik.system.NativeStart.main(Native Method)
04-07 21:09:31.713: E/AndroidRuntime(4091): Caused by: java.lang.reflect.InvocationTargetException
04-07 21:09:31.713: E/AndroidRuntime(4091): at java.lang.reflect.Method.invokeNative(Native Method)
04-07 21:09:31.713: E/AndroidRuntime(4091): at java.lang.reflect.Method.invoke(Method.java:507)
04-07 21:09:31.713: E/AndroidRuntime(4091): at android.view.View$1.onClick(View.java:2139)
04-07 21:09:31.713: E/AndroidRuntime(4091): ... 11 more
04-07 21:09:31.713: E/AndroidRuntime(4091): Caused by: java.lang.NullPointerException
04-07 21:09:31.713: E/AndroidRuntime(4091): at hudds.fc.coach.ReadinessGraph.getIntent(ReadinessGraph.java:45)
04-07 21:09:31.713: E/AndroidRuntime(4091): at hudds.fc.coach.Overview.generateGraph(Overview.java:101)
04-07 21:09:31.713: E/AndroidRuntime(4091): ... 14 more
04-07 21:09:34.746: I/Process(4091): Sending signal. PID: 4091 SIG: 9

以下代码从数据库下载数据:

        try {
if (json.getString(KEY_SUCCESS) != null) {

String getsize=json.getString("size");
size = Integer.parseInt(getsize);

for (int i = 0; i < size; i++) {
String getRating=json.getJSONArray("number").getJSONObject(i).getString("rating_number");
int rating = Integer.parseInt(getRating);


readinessRatng.add(rating);
String printratings=readinessRatng.toString();
Log.e("ratings are", printratings);
}

}


else{

}
}

catch (JSONException e) {
e.printStackTrace();
}

最佳答案

引用这个LINK对于图表引擎

 public XYMultipleSeriesRenderer getBarDemoRenderer() {
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
renderer.setAxisTitleTextSize(16);
renderer.setChartTitleTextSize(20);
renderer.setLabelsTextSize(15);
renderer.setLegendTextSize(15);
renderer.setMargins(new int[] {20, 30, 15, 0});
SimpleSeriesRenderer r = new SimpleSeriesRenderer();
r.setColor(Color.BLUE);
renderer.addSeriesRenderer(r);
r = new SimpleSeriesRenderer();
r.setColor(Color.GREEN);
renderer.addSeriesRenderer(r);
return renderer;
}

private XYMultipleSeriesDataset getBarDemoDataset() {
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
final int nr = 10;
Random r = new Random();
for (int i = 0; i < SERIES_NR; i++) {
CategorySeries series = new CategorySeries("Demo series " + (i + 1));
for (int k = 0; k < nr; k++) {
series.add(100 + r.nextInt() % 100);
}
dataset.addSeries(series.toXYSeries());
}
return dataset;
}



private void setChartSettings(XYMultipleSeriesRenderer renderer) {
renderer.setChartTitle("Chart demo");
renderer.setXTitle("x values");
renderer.setYTitle("y values");
renderer.setXAxisMin(0);
renderer.setXAxisMax(5);
renderer.setYAxisMin(0);
renderer.setYAxisMax(250);
}

添加上述方法并从您的 oncreate 方法中调用以下行

XYMultipleSeriesRenderer renderer = getBarDemoRenderer();
setChartSettings(renderer);
Intent intent = ChartFactory.getBarChartIntent(this, getBarDemoDataset(), renderer, Type.DEFAULT);
startActivity(intent);

关于java - 使用图表引擎上的数据库中的远程数据生成图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10264943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com