单击饼图时如何显示切片值

时间:2019-09-16 16:15:53

标签: java android android-studio mpandroidchart

我使用了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");
        }

     
    }

0 个答案:

没有答案
相关问题