2016-09-01 101 views
0

我試圖實現一個圖到我的android應用程序。爲此,我使用了MPAndroidChart庫。但是在嘗試實現它時似乎存在構造函數錯誤。使用MPAndroidchart庫時無法解析構造函數

我的XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    tools:context="com.example.paycorp.androidtest.Graph4"> 

    <com.github.mikephil.charting.charts.BarChart 
     android:id="@+id/chart" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

</RelativeLayout> 

代碼

public class Graph4 extends ActionBarActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     BarChart chart = (BarChart) findViewById(R.id.chart); 

     BarData data = new BarData(getXAxisValues(), getDataSet()); 
     chart.setData(data); 
     chart.setDescription("My Chart"); 
     chart.animateXY(2000, 2000); 
     chart.invalidate(); 
    } 

    private ArrayList<BarDataSet> getDataSet() { 
     ArrayList<BarDataSet> dataSets = null; 

     ArrayList<BarEntry> valueSet1 = new ArrayList<>(); 
     BarEntry v1e1 = new BarEntry(110.000f, 0); // Jan 
     valueSet1.add(v1e1); 
     BarEntry v1e2 = new BarEntry(40.000f, 1); // Feb 
     valueSet1.add(v1e2); 
     BarEntry v1e3 = new BarEntry(60.000f, 2); // Mar 
     valueSet1.add(v1e3); 
     BarEntry v1e4 = new BarEntry(30.000f, 3); // Apr 
     valueSet1.add(v1e4); 
     BarEntry v1e5 = new BarEntry(90.000f, 4); // May 
     valueSet1.add(v1e5); 
     BarEntry v1e6 = new BarEntry(100.000f, 5); // Jun 
     valueSet1.add(v1e6); 

     ArrayList<BarEntry> valueSet2 = new ArrayList<>(); 
     BarEntry v2e1 = new BarEntry(150.000f, 0); // Jan 
     valueSet2.add(v2e1); 
     BarEntry v2e2 = new BarEntry(90.000f, 1); // Feb 
     valueSet2.add(v2e2); 
     BarEntry v2e3 = new BarEntry(120.000f, 2); // Mar 
     valueSet2.add(v2e3); 
     BarEntry v2e4 = new BarEntry(60.000f, 3); // Apr 
     valueSet2.add(v2e4); 
     BarEntry v2e5 = new BarEntry(20.000f, 4); // May 
     valueSet2.add(v2e5); 
     BarEntry v2e6 = new BarEntry(80.000f, 5); // Jun 
     valueSet2.add(v2e6); 

     BarDataSet barDataSet1 = new BarDataSet(valueSet1, "Brand 1"); 
     barDataSet1.setColor(Color.rgb(0, 155, 0)); 
     BarDataSet barDataSet2 = new BarDataSet(valueSet2, "Brand 2"); 
     barDataSet2.setColors(ColorTemplate.COLORFUL_COLORS); 

     dataSets = new ArrayList<>(); 
     dataSets.add(barDataSet1); 
     dataSets.add(barDataSet2); 
     return dataSets; 
    } 

    private ArrayList<String> getXAxisValues() { 
     ArrayList<String> xAxis = new ArrayList<>(); 
     xAxis.add("JAN"); 
     xAxis.add("FEB"); 
     xAxis.add("MAR"); 
     xAxis.add("APR"); 
     xAxis.add("MAY"); 
     xAxis.add("JUN"); 
     return xAxis; 
    } 
} 

在這段代碼中我得到的錯誤在這行

BarData data = new BarData(getXAxisValues(), getDataSet()); 

錯誤出現在getXAxisValues(),getDataSet ()部分。

錯誤明確表示,這

cannot resolve contructor 'BarData(java.util.ArrayList <java.lang.string>, java.util.ArrayList<com.github.mikephil.charting.data.BarDataset>)' 
+0

你的答案就在這裏http://stackoverflow.com/questions/37214617/cannot-resolve-構造 - 巴達塔希望這會有所幫助。 – shalini

+0

我試過這些解決方案。沒有爲我工作 –

回答

0

我不知道究竟我在哪裏把X軸的值,但MPAndroidChart工作,如果你解決這些問題。

來自:

BarData data = new BarData(getXAxisValues(), getDataSet()); 

private ArrayList<BarDataSet> getDataSet() { 
    ArrayList<BarDataSet> dataSets = null; 
    ... 
} 

到:

BarData data = new BarData(getDataSet()); 

private ArrayList<IBarDataSet> getDataSet() { 
    ArrayList<IBarDataSet> dataSets = null; 
    ... 
} 

在MPAndroidChart v3.0beta

+0

是的錯誤將消失,但是當你運行應用程序,它會崩潰。你真的運行過這段代碼嗎? –

+0

當然我運行該代碼。我希望你不要刪除下面的代碼'ArrayList dataSets = null;':'getDataSet()'返回'null'?如果不是,那麼錯誤代碼是什麼? – myoungjin

+0

這實際上應該工作。有完全相同的問題,但與ILineDataSet –

相關問題