2014-10-28 2 views
0

Я использую Achartengine для создания гистограммы в приложении для Android. Мне нужно, если пользователь нажимает на панель, тогда он получает значение Yaxis. По какой-то причине я не хочу использовать это:Получить YValue, нажав на панель

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); 
+0

seriesSelection.getValue() - значение Y, но его двойное преобразование в int int amount = seriesSelection.getValue.intValue(); –

+0

если я написал вашу строку, я получаю сообщение об ошибке. Однако здесь проблема в том, что я не получаю значение в Log. – tittarella

+0

да, извините, посмотрите здесь http://wptrafficanalyzer.in/blog/android-onclick-event-handler-for-custom-layout-linechart-in-achartengine/ –

ответ

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); 
+0

Я пробовал, но он не работает. – tittarella

Смежные вопросы