2016-09-28 114 views
0

BarChart出現問題..我列出了7個項目。例如如何在BarChart中顯示數據Android

final int[] a = {5,2,10,4,7,8,13}; 
final String[] b= {"January","February","March","April","May","June","Jully"}; 

所以我想在條形圖上顯示。例如前5個項目顯示,當我點擊該按鈕時,剩餘的2個項目顯示在條形圖中。圖片是, enter image description here

比我想,當我點擊 「WAFAW」 按鈕條形圖是,

enter image description here

但我的代碼工作是,

enter image description here

所以這意味着不顯示酒吧..我該怎麼做?感謝現在..

我的代碼是,

final BarChart barChart = (BarChart) findViewById(R.id.chart); 
Button button = (Button) findViewById(R.id.button); 


final int[] a = {5,2,10,4,7,8,13}; 
final String[] b= {"January","February","March","April","May","June","Jully"}; 
final ArrayList<BarEntry> entries = new ArrayList<>(); 
final ArrayList<String> labels = new ArrayList<String>(); 

for(int i=0 ; i<5;i++){ 
    entries.add(new BarEntry(a[i],i)); 
    labels.add(b[i]); 
} 
button.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     entries.clear(); 
     labels.clear(); 

     for(int i=5; i<a.length;i++){ 
      entries.add(new BarEntry(a[i],i)); 
      labels.add(b[i]); 
     } 
     BarDataSet dataset = new BarDataSet(entries, "# of Calls"); 
     barChart.getXAxis().setPosition(XAxis.XAxisPosition.TOP); 
     BarData data = new BarData(labels, dataset); 
     dataset.setColors(ColorTemplate.COLORFUL_COLORS); 
     barChart.setData(data); 
     barChart.animateY(3000); 
    } 
}); 

BarDataSet dataset = new BarDataSet(entries, "# of Calls"); 

barChart.getXAxis().setPosition(XAxis.XAxisPosition.TOP); 

BarData data = new BarData(labels, dataset); 
dataset.setColors(ColorTemplate.COLORFUL_COLORS); 
barChart.setData(data); 

barChart.animateY(3000); 

回答

0

據我所知,沒有簡單的解決方案來說明如何選擇顯示哪些條。這取決於你想要/需要解決它的動態程度。

我能想到的最好的辦法是keeing的棒陣列顯示,如:

final int[] show_arr = {0,1,2,3,4,5}; 

onClick()是叫你改變陣列

final int[] show_arr = {5,7}; 

然後運行再次通過整個繪圖程序。 但是你添加的條目通過show_arr

我知道這是不是一個超級漂亮的解決方案循環,但至少你只需要硬編碼向量和可以重複使用的所有其他部分。

+0

非常感謝,但從我身上不起作用。 –

+0

您是否嘗試添加barChart.invalicate(); 在您的應用程序中發生了什麼 – julian59189

+0

我沒有嘗試,因爲當我寫一個「barChart.invalicate();」我有一個語法錯誤原因「找不到符號方法invalicate()」.. 請你可以看到照片..它意味着我創建barChart,但是當我點擊「WAFAW」按鈕時不顯示任何東西.. –

相關問題