点击一个栏就可以获得YValue

时间:2014-10-28 10:18:46

标签: android bar-chart achartengine

我正在使用Achartengine在我的Android应用中创建条形图。我需要,如果用户点击了一个栏,那么他就获得了Yaxis的价值。出于某种原因,我不想使用它:

renderer.setDisplayChartValues(true);

我写了这个,但它不起作用:

    final GraphicalView mChartView;
    mChartView = ChartFactory.getBarChartView(context, dataset, mRenderer, Type.DEFAULT);
    mChartView.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                // handle the click event on the chart

                SeriesSelection seriesSelection = mChartView.getCurrentSeriesAndPoint();
                if (seriesSelection != null) {

                    // Getting the y value after clicking BAR
                int amount = (int) seriesSelection.getValue();


                Log.i("point: ", "is "+amount);

                }

                 mChartView.repaint();



            }
        });

我还将这些添加到我的multirenderer:

mRenderer.setClickEnabled(true);
mRenderer.setSelectableBuffer(30);

1 个答案:

答案 0 :(得分:0)

尝试将Type.DEFAULT替换为null。我不知道为什么,但它似乎是bcoz我尝试过它的原因。还看到mChart.toRealPoint的事情。

  mChart.setOnClickListener(new View.OnClickListener(){
                    public void onClick(View v)
                    {
                        System.out.println("X :" + mChart.toRealPoint(0)[0]);
                        System.out.println("Y:" + mChart.toRealPoint(0)[1]);

                        SeriesSelection seriesSelection = mChart.getCurrentSeriesAndPoint();
            if (seriesSelection != null) {

                // Getting the y value after clicking BAR
            int amount = (int) seriesSelection.getValue();


            Log.i("point: ", "is "+amount);

            }

             mChart.repaint();

                    }
                });

            chartLayout.addView(mChart);