0
我想獲取x條目的值,這是在餅圖扇區上單擊時的字符串。怎麼樣?我可以使用getVal()獲得y值,但x怎麼樣? x軸入口的值來自sqlite。該代碼被如下所示MPAndroidChart - 獲取x條目的值
public class chart extends Activity {
private FrameLayout chartContainer;
private PieChart mChart;
Context CTX = this;
DatabaseOperations DOP;
@Override
protected void onCreate (Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.chart);
chartContainer=(FrameLayout) findViewById(R.id.chartContainer);
mChart=new PieChart(this);
//add pie chart to the layout
chartContainer.addView(mChart);
//enable hole and configure
mChart.setDrawHoleEnabled(true);
mChart.setHoleColorTransparent(true);
mChart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
@Override
public void onValueSelected(Entry e, int dataSetIndex, Highlight h) { if (e == null)
return;
Toast.makeText(chart.this, xVals.get(e.getXIndex()) + " used " + e.getVal() + "kwh", Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected() {
}
});
//add data
addeachData();
Legend l=mChart.getLegend();
l.setPosition(Legend.LegendPosition.RIGHT_OF_CHART);
}
protected void addeachData() {
DatabaseOperations DOP = new DatabaseOperations(CTX);
Cursor CR = DOP.getInformation(DOP);
int count=CR.getCount();
float[]values=new float[count];
String[]name=new String[count];
for (int m=0; m<count; m++){
CR.moveToNext();
name[m]=CR.getString(0);
values[m]=CR.getFloat(1);
}
ArrayList<Entry> yVals = new ArrayList<Entry>();
for (int i = 0; i <name.length; i++)
yVals.add(new Entry(values[i], i));
final ArrayList<String> xVals = new ArrayList<String>();
for (int i = 0; i <name.length; i++)
xVals.add(name[i]);
ArrayList<Integer> colors=new ArrayList<Integer>();
for(int c: ColorTemplate.VORDIPLOM_COLORS)
colors.add(c);
colors.add(ColorTemplate.getHoloBlue());
dataSet.setColors(colors);
PieData data=new PieData(xVals, dataSet);
data.setValueFormatter(new PercentFormatter());
data.setValueTextSize(11f);
data.setValueTextColor(Color.GRAY);
mChart.setData(data);
mChart.highlightValues(null);
mChart.invalidate();
}
}
我無法訪問xVal,我更新了我的代碼。你能幫我嗎?謝謝 – whoami
我把xvals的聲明和上下文和數據庫放在一起,它現在可以工作了。謝謝 – whoami