我使用了MP Android Chart Lib,我想同时隐藏两个值,并且仅在单击时显示它。
我使用了不同的方法,但是效果不佳。
有人可以帮助我吗?:
请帮助我
我使用的代码-
pieChart = (PieChart) findViewById(R.id.piechart);
pieChart.setUsePercentValues(true);
datatext = (TextView)findViewById(R.id.datatext);
datatitle = (TextView)findViewById(R.id.datatitle);
datavalue = (TextView)findViewById(R.id.datavalue);
// IMPORTANT: In a PieChart, no values (Entry) should have the same
// xIndex (even if from different DataSets), since no values can be
// drawn above each other.
ArrayList<Entry> yvalues = new ArrayList<Entry>();
yvalues.add(new Entry(24f, 0));
yvalues.add(new Entry(15f, 1));
yvalues.add(new Entry(19f, 2));
yvalues.add(new Entry(22f, 3));
yvalues.add(new Entry(20f, 4));
//yvalues.add(new Entry(17f, 5));
PieDataSet dataSet = new PieDataSet(yvalues, "Balances");
ArrayList<String> xVals = new ArrayList<String>();
xVals.add("Monthly Expenses");
xVals.add("Phonepe");
xVals.add("Uber");
xVals.add("Paytm");
xVals.add("Savings");
// xVals.add("Ola");
//dataSet.setDrawValues(false);
PieData data = new PieData(xVals, dataSet);
// In Percentage term
data.setValueFormatter(new PercentFormatter());
// Default value
//data.setValueFormatter(new DefaultValueFormatter(0));
pieChart.setData(data);
pieChart.setDescription("Savings");
pieChart.setDrawSliceText(false);
pieChart.setDrawHoleEnabled(true);
pieChart.setTransparentCircleRadius(25f);
pieChart.setHoleRadius(25f);
dataSet.setColors(ColorTemplate.VORDIPLOM_COLORS);
data.setValueTextSize(13f);
data.setValueTextColor(Color.DKGRAY);
pieChart.setOnChartValueSelectedListener(this);
pieChart.animateXY(1400, 1400);
}
@Override
public void onValueSelected(Entry e, int dataSetIndex, Highlight h) {
LinearLayout layout = (LinearLayout) findViewById(R.id.datalayout);
layout.setVisibility(View.VISIBLE);
View view1 = (View) findViewById(R.id.view1);
view1.setVisibility(View.VISIBLE);
View view2 = (View) findViewById(R.id.view2);
view2.setVisibility(View.VISIBLE);
int position = e.getXIndex();
Toast.makeText(this, ""+position, Toast.LENGTH_SHORT).show();
//YValue
final String selectedYValue = String.valueOf(e.getVal());
Toast.makeText(this, ""+selectedYValue, Toast.LENGTH_SHORT).show();
// To remove slice text
/* pieChart.setDrawMarkers(false); // To remove markers when click
pieChart.setDrawEntryLabels(false); // To remove labels from piece of pie
pieChart.getDescription().setEnabled(false);*/
if (e == null)
return;
Log.i("VAL SELECTED",
"Value: " + e.getVal() + ", xIndex: " + e.getXIndex()
+ ", DataSet index: " + dataSetIndex);
float datatt = e.getVal();
float pos = e.getXIndex();
String symbol = "₹";
// int finalpos = Integer.parseInt((""+pos));
// Toast.makeText(this, ""+pos, Toast.LENGTH_SHORT).show();
datatext.setText(""+datatt+"%");
if (pos==0.0){
datatitle.setText("Expenses");
//DUMMY VALUE FOR NOW
datavalue.setText(symbol+"3550");
}
else if (pos==1.0){
datatitle.setText("Phonepe");
datavalue.setText(symbol+"910");
}
else if (pos==2.0){
datatitle.setText("Uber");
datavalue.setText(symbol+"320");
}
else if (pos==3.0){
datatitle.setText("Paytm");
datavalue.setText(symbol+"2320");
}
else if (pos==4.0){
datatitle.setText("Savings");
datavalue.setText(symbol+"1200");
}
}