Iam working on an android app and using AChartEngine for charting. Everything is working as it should except that I capture the coordinates of touch on screen in OnTouch() method. On first touch it doesnt return me any coordinates and Toast is displayed on Top Left Corner (set by Toast.setGravity()). On Subsequent touches it works perfectly fine and just not on first time i click or touch the screen. Where am i Wrong?
mChartView.setOnClickListener(new View.OnClickListener() {
Toast test;
public void onClick(View v) {
SeriesSelection seriesSelection = mChartView.getCurrentSeriesAndPoint();
v.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
xaxis = event.getX();
yaxis = event.getY();
xx = (int) xaxis;
yy = (int) yaxis;
return false;
}
});
if (seriesSelection != null) {
int status_index = seriesSelection.getSeriesIndex();
int equipment_index = seriesSelection.getPointIndex();
double duration_value = seriesSelection.getValue();
if(status_index == 0)
{
if(equipment_index == 0)
{
duration_value = EquipmentHoursDuration[0][1];
}
if(equipment_index == 1)
{
duration_value = EquipmentHoursDuration[1][1];
}
if(equipment_index == 2)
{
duration_value = EquipmentHoursDuration[2][1];
}
if(equipment_index == 3)
{
duration_value = EquipmentHoursDuration[3][1];
}
if(equipment_index == 4)
{
duration_value = EquipmentHoursDuration[4][1];
}
String final_status = titles[status_index];
String final_equipment = EquipmentNamePartial[equipment_index];
test = Toast.makeText(
SalesBar.this,
"Status: " + final_status + '\n'
+ " Equipment: " + final_equipment + '\n'
+ " Duration: " + duration_value + " hours", Toast.LENGTH_SHORT);
test.setGravity(Gravity.TOP|Gravity.LEFT, xx, yy);
test.show();
}
else
{
String final_status = titles[status_index];
String final_equipment = EquipmentNamePartial[equipment_index];
if(equipment_index == 0)
{
duration_value = EquipmentHoursDuration[0][0];
}
if(equipment_index == 1)
{
duration_value = EquipmentHoursDuration[1][0];
}
if(equipment_index == 2)
{
duration_value = EquipmentHoursDuration[2][0];
}
if(equipment_index == 3)
{
duration_value = EquipmentHoursDuration[3][0];
}
if(equipment_index == 4)
{
duration_value = EquipmentHoursDuration[4][0];
}
test = Toast.makeText(
SalesBar.this,
"Status: " + final_status + '\n'
+ " Equipment: " + final_equipment + '\n'
+ " Duration: " + duration_value + " hours", Toast.LENGTH_SHORT);
test.setGravity(Gravity.TOP|Gravity.LEFT, xx, yy);
test.show();
}
}
}
});