Я работаю с achartengine, и я хочу активировать Action Mode в Action Bar, когда я долго нажимаю на диаграмму. Но OnLongClickListener не работает, я искал везде, где я пытался почти все, но я не могу заставить его работать, и я не знаю, почему. Вот мой код:OnLongClickListener не работает с achartengine
mChartView.setLongClickable(true);
mChartView.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Log.i("ClickListener", "CLICK");
return false;
}
});
Но событие не вызывается, я думаю, это потому, что диаграмма прокручивать, но не имеет смысла. Я пробовал whit OnClick, а также не работает. Единственное, что работает, это OnTouch, но я не могу получить поведение Long-Press.
EDIT:
Или, может быть, есть какой-нибудь способ получить фактическое состояние состояние сенсорного экрана, на этом пути, я могу поставить «таймер», пока он не достигнет, например 1000мс, но только в то время как сенсорный экран коснулся, потому что внутри события onTouch я могу знать состояние сенсорного экрана при событии, независимо от текущего состояния.
Ok, вот некоторый код для линейного графика:
private static XYSeries input1;
private static XYMultipleSeriesDataset mDataset;
private static XYSeriesRenderer renderer1;
private static XYMultipleSeriesRenderer mRenderer;
private static GraphicalView mChartView;
mRenderer = new XYMultipleSeriesRenderer();
renderer1 = new XYSeriesRenderer();
mRenderer.setOrientation(Orientation.HORIZONTAL);
mRenderer.addSeriesRenderer(renderer1);
mRenderer.setXAxisMax(10);
mRenderer.setYAxisMax(10);
mRenderer.setAxesColor(Color.WHITE);
mRenderer.setLabelsColor(Color.WHITE);
mRenderer.setShowGrid(true);
input1 = new XYSeries("Linea");
mDataset = new XYMultipleSeriesDataset();
mDataset.addSeries(input1);
renderer1.setColor(Color.WHITE);
input1.add(4, 7);
input1.add(7, 3);
input1.add(8, 6);
input1.add(9, 2);
mChartView = ChartFactory.getLineChartView(this, mDataset, mRenderer);
setContentView(mChartView);
mChartView.setLongClickable(true);
mChartView.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Log.i("Click", "LONG CLICKED CHART");
return false;
}
});
Я пытаюсь сделать Long-Click с onTouch, потому что я понял, что если я скольжу график будет taked, как Long-Click также , поэтому я должен взять длинный клик, НО, если я не сдвигу график.
У вас также есть onTouchListener, установленный на том же представлении? если вы так можете опубликовать код для этого? – FoamyGuy
Нет, у меня есть только OnLongClickListener. – Andres