【发布时间】:2012-07-02 23:37:15
【问题描述】:
我正在使用 achartengine,当我长按图表时,我想在操作栏中激活操作模式。但是 OnLongClickListener 不起作用,我到处搜索我几乎尝试了所有东西,但我无法让它工作,我不知道为什么。这是我的代码:
mChartView.setLongClickable(true);
mChartView.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Log.i("ClickListener", "CLICK");
return false;
}
});
但该事件从未被调用,我认为这是因为图表可滚动但没有意义。我试过 whit OnClick 也不起作用。唯一有效的是 OnTouch,但我无法获得 Long-Press 的行为。
编辑:
或者也许是获取触摸屏状态的实际状态的任何方式,通过这种方式,我可以放置一个“计时器”,直到它达到例如 1000 毫秒,但只有在触摸屏被触摸时,因为在 onTouch 事件中我可以只知道事件发生时触摸屏的状态,不管是当前状态。
好的,这里有一些折线图的代码:
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;
}
});
我正在尝试使用 onTouch 进行长按,因为我意识到如果我滑动图表,它也会被视为长按,所以如果我不滑动,我必须长按但图表。
【问题讨论】:
-
您是否也在同一个视图上设置了 onTouchListener?如果可以,您也可以发布代码吗?
-
不,我只有 OnLongClickListener。
标签: android achartengine onlongclicklistener