2012-08-23 62 views
0

現在我正嘗試在android中使用achartengine創建條形圖。但是當我試圖運行我的應用程序時,它只是像這樣提示「對不起,您的應用程序意外關閉!..再試一次。強制關閉「無法在android中使用achartengine顯示條形圖

可以請任何人澄清一下這個概念嗎?

請找我的消息來源和logcat的參考

logcat的

08-23 11:22:01.892: D/AndroidRuntime(451): Shutting down VM 
08-23 11:22:01.922: W/dalvikvm(451): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
08-23 11:22:02.002: E/AndroidRuntime(451): FATAL EXCEPTION: main 
08-23 11:22:02.002: E/AndroidRuntime(451): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.barchart/com.example.barchart.BarActivity}: java.lang.ClassCastException: com.example.barchart.BarActivity 
08-23 11:22:02.002: E/AndroidRuntime(451): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585) 
08-23 11:22:02.002: E/AndroidRuntime(451): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
08-23 11:22:02.002: E/AndroidRuntime(451): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
08-23 11:22:02.002: E/AndroidRuntime(451): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
08-23 11:22:02.002: E/AndroidRuntime(451): at android.os.Handler.dispatchMessage(Handler.java:99) 
08-23 11:22:02.002: E/AndroidRuntime(451): at android.os.Looper.loop(Looper.java:123) 
08-23 11:22:02.002: E/AndroidRuntime(451): at android.app.ActivityThread.main(ActivityThread.java:4627) 
08-23 11:22:02.002: E/AndroidRuntime(451): at java.lang.reflect.Method.invokeNative(Native Method) 
08-23 11:22:02.002: E/AndroidRuntime(451): at java.lang.reflect.Method.invoke(Method.java:521) 
08-23 11:22:02.002: E/AndroidRuntime(451): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
08-23 11:22:02.002: E/AndroidRuntime(451): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
08-23 11:22:02.002: E/AndroidRuntime(451): at dalvik.system.NativeStart.main(Native Method) 
08-23 11:22:02.002: E/AndroidRuntime(451): Caused by: java.lang.ClassCastException: com.example.barchart.BarActivity 
08-23 11:22:02.002: E/AndroidRuntime(451): at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 
08-23 11:22:02.002: E/AndroidRuntime(451): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577) 
08-23 11:22:02.002: E/AndroidRuntime(451): ... 11 more 

BarActivity.java

public class BarActivity{ 
    public Intent getIntent(Context context) 
    { 
    XYMultipleSeriesRenderer mrenderer = new XYMultipleSeriesRenderer(); 
    double[] range = {0,5,0,5}; 

    int[] y = {24,30,12}; 
    CategorySeries series1 = new CategorySeries("Today"); 
    CategorySeries series2 = new CategorySeries("Next day"); 
    CategorySeries series3 = new CategorySeries("2 days later"); 

    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 

for (int i=0;i<3;i++){ 
    switch(i){ 
    case 0: 
      series1.add(y[0]); 
      dataset.addSeries(series1.toXYSeries()); 
      break; 
    case 1: 
      series2.add(y[1]); 
      dataset.addSeries(series2.toXYSeries()); 
      break; 
    case 2: 
      series3.add(y[2]); 
      dataset.addSeries(series3.toXYSeries()); 
      break; 
    } 
} 

XYSeriesRenderer renderer1 = new XYSeriesRenderer(); 
renderer1.setColor(Color.GREEN); 
XYSeriesRenderer renderer2 = new XYSeriesRenderer(); 
renderer2.setColor(Color.BLUE); 
XYSeriesRenderer renderer3 = new XYSeriesRenderer(); 
renderer3.setColor(Color.RED); 
    mrenderer.setAxisTitleTextSize(16); 
    mrenderer.setChartTitleTextSize(20); 
    mrenderer.setLabelsTextSize(15); 
    mrenderer.setLegendTextSize(15); 
    mrenderer.setBarSpacing(0); 
    mrenderer.setXLabels(1); 
    mrenderer.addXTextLabel(2.5, "Outstanding jobs"); 
    mrenderer.setMargins(new int[] {20, 30, 15, 0}); 
    mrenderer.setAxesColor(Color.WHITE); 
    mrenderer.setChartTitle("Work per day"); 
    mrenderer.setXTitle("Days"); 
    mrenderer.setInitialRange(range, 1); 
    mrenderer.setBarSpacing(1); 
    mrenderer.setXAxisMin(0); 
    mrenderer.setXAxisMax(5); 
    mrenderer.setYAxisMin(0); 
    mrenderer.setPanEnabled(false, false); 
    mrenderer.setZoomEnabled(false, false); 
    mrenderer.addSeriesRenderer(renderer1); 
    mrenderer.addSeriesRenderer(renderer2); 
    mrenderer.addSeriesRenderer(renderer3); 
Intent intent = ChartFactory.getBarChartIntent(context, dataset, mrenderer, Type.DEFAULT); 
return intent; 
} 
} 

的main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
</LinearLayout> 

的Manifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.barchart" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="10" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity android:name="org.achartengine.GraphicalActivity" /> 
    <activity 
     android:name=".BarActivity" 
     android:label="@string/title_activity_bar" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 
</manifest> 

回答

2

這不是一個AChartEngine問題。

您的BarActivity必須擴展Activity類或它的一個子類。

+0

即使我已將其從Activity中擴展出來,但它只顯示空白頁。在這裏我已經提供了我的.xml供參考,請訪問我的問題。請允許我清除 – Rohith

+0

更新代碼和錯誤。 –