2017-05-31 106 views
2

我想製作一個條形圖。所以我在互聯網上的代碼,但我有問題,我不知道如何解決。有誰知道如何使用MPAndroidChart?

我正在使用這些代碼。

public class tecAmc extends Fragment { 


public tecAmc() { 
    // Required empty public constructor 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    //Alterar nome da actionbar 
    ((MenuDrawer) getActivity()).setActionBarTitle("AMC"); 


    BarChart chart = (BarChart) getView().findViewById(R.id.chart); 

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

    // Inflate the layout for this fragment 
    return inflater.inflate(R.layout.fragment_tec_amc, container, false); 


} 

public 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; 
} 

public 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()); 

chart.setDescription("My Chart"); 

的問題是:

BarData(com.github.mikephil.charting.interfaces .datasets.IBarDataSet ...)在 BarData不能應用於(java.util.ArrayList, java.util.ArrayList)

請幫幫我。

+0

你可以分享'BarDataSet'構造函數嗎? –

+0

由於版本問題可能發生此錯誤。檢查版本以及該版本的X軸支持。請參閱此鏈接https://stackoverflow.com/questions/38262649/mpandroidchart-why-bardata-constructor-not-work,https://stackoverflow.com/questions/37214617/cannot-resolve-constructor-bardata – sivaprakash

+0

可能的重複[我如何在Mchacha的barcharts中添加X軸標籤](https://stackoverflow.com/questions/44194550/how-do-i-add-x-axis-lables-in-mpcharts-for-barcharts) –

回答

0

通過查看目前爲止的這段代碼。

發生這種情況,因爲 BardDataSet有型

BarDataSet(ArrayList<BarEntry> ,String) 

的論點和你正在做

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

其中getXAxisValues有ArrayList<String>

UPDATE的返回類型:

您可以覆蓋已定義的構造函數。

BarDataSet(ArrayList<String> xAxis,ArrayList<BarDataSet> dataSets){ 
//DO SOMETHING 
} 
+0

我該如何解決它? @HaamzaAnis –

+0

@LucasCharles查看更新。 –

+0

我不知道我需要放在te bardataset裏面。我是開發者。 @HamzaAnis –

相關問題