我想從數(shù)據(jù)庫(kù)獲取 xAxis,這是不同查詢的結(jié)果,以便我的圖表可以動(dòng)態(tài)顯示數(shù)據(jù)。對(duì)于靜態(tài) mpchart 我對(duì)此沒(méi)有問(wèn)題。我在onCreate中調(diào)用了這個(gè)函數(shù)。private void drawChart(){ getChartData(); BarDataSet barDataSet1 = new BarDataSet(sehat(), "Sehat"); BarDataSet barDataSet2 = new BarDataSet(sakit(), "Sakit"); barDataSet1.setColor(Color.BLUE); barDataSet2.setColor(Color.RED); chart.getXAxis().setDrawGridLines(false); chart.getAxisLeft().setDrawGridLines(false); chart.getDescription().setEnabled(false); BarData barData = new BarData(barDataSet1, barDataSet2); chart.setData(barData); String[] area = new String[]{"UT PBRK", "POOL SLI", "UT TJR", "UT TRD", "UTR BATAKAN", "UT PBLP", "UT PBPN"}; XAxis xAxis = chart.getXAxis(); xAxis.setValueFormatter(new IndexAxisValueFormatter(area)); xAxis.setCenterAxisLabels(true); xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); xAxis.setGranularity(1); xAxis.setGranularityEnabled(true); chart.setDragEnabled(true); chart.setVisibleXRangeMaximum(3); float barSpace = 0.08f; float groupSpace = 0.54f; barData.setBarWidth(0.15f); chart.getXAxis().setAxisMinimum(0); chart.getXAxis().setAxisMaximum(0+chart.getBarData().getGroupWidth(groupSpace, barSpace)*7); chart.getAxisLeft().setAxisMinimum(0); chart.groupBars(0, groupSpace, barSpace); chart.invalidate();}private ArrayList<BarEntry> sakit() { ArrayList<BarEntry> dataEntries = new ArrayList<>(); dataEntries.add(new BarEntry(1, 2)); dataEntries.add(new BarEntry(2, 1)); dataEntries.add(new BarEntry(3, 1)); dataEntries.add(new BarEntry(4, 4)); dataEntries.add(new BarEntry(5, 3)); dataEntries.add(new BarEntry(6, 7)); dataEntries.add(new BarEntry(7, 7)); return dataEntries; }我要使這條線變得動(dòng)態(tài)。String[] area = new String[]{"UT PBRK", "POOL SLI", "UT TJR", "UT TRD", "UTR BATAKAN", "UT PBLP", "UT PBPN"};到目前為止,我已經(jīng)嘗試了一些我在谷歌中找到的實(shí)驗(yàn)。這個(gè)更接近。Log.d顯示結(jié)果數(shù)據(jù)。但是當(dāng)我使用 String[] 時(shí),它不會(huì)顯示在我的圖表中。
1 回答

繁花不似錦
TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊
仔細(xì)看下面的代碼
for(Data get : data){
Log.d("testing", get.getArea());
area = new String[]{get.getArea()};
}
區(qū)域 = new String[]{get.getArea()}; for 循環(huán)中的方法,因此每次都會(huì)正確更新區(qū)域變量,因此您最終只能在區(qū)域變量?jī)?nèi)獲得一個(gè)值,因此請(qǐng)?jiān)诖a中進(jìn)行如下所述的更改
Int i = 0;
String[] area = new String[data.size()];
for(Data get : data){
Log.d("testing", get.getArea());
area[i] = get.getArea();
i++;
}
我希望它對(duì)你有幫助謝謝
- 1 回答
- 0 關(guān)注
- 117 瀏覽
添加回答
舉報(bào)
0/150
提交
取消