Pracuję nad aplikacją dla systemu Android i korzystam z programu AChartEngine do tworzenia wykresów słupkowych. Wszystko działa tak, jak powinno, z wyjątkiem tego, że nie mogę określić, który pasek na wykresie jest dotknięty (nie kliknięty). Wygląda na to, że .getCurrentSeriesAndPoint() nie działa w OnTouchListener. Za każdym razem wraca NULL. Kiedy używam OnClickListener wszystko działa poprawnie, ale muszę wiedzieć, który pasek jest dotykany (Action_Down i Action_Up) nie kliknął.android achartengine - Jak rozpoznać, który pasek jest dotykany na wykresie słupkowym?
Czy .getCurrentSeriesAndPoint() nie działa w ogóle w TouchListener? Czy istnieje obejście lub inny sposób rozpoznania, który pasek jest dotykany?
mChartView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
SeriesSelection seriesSelection = mChartView.getCurrentSeriesAndPoint();
SimpleSeriesRenderer r = new SimpleSeriesRenderer();
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:{
Toast.makeText(MainActivity.this, "DOWN", Toast.LENGTH_SHORT) .show();
if(seriesSelection != null) touchedBar = seriesSelection.getPointIndex();
break;}
case MotionEvent.ACTION_UP:{
Toast.makeText(MainActivity.this, "UP", Toast.LENGTH_LONG) .show();
touchedBar = 0;
break;}
default: break;
}
mRenderer.removeAllRenderers();
r.setColor(Color.RED);
r.setSelectedBar(ClickedBar);
mRenderer.addSeriesRenderer(r);
mChartView.repaint();
return true;
}
});
poważaniem Christian
Hi @ChristianR można proszę pisać cały kod. – user1844638