我正在使用achartengine,並且我想在動作欄中激活動作模式,當我在圖表上長按一下。但OnLongClickListener不工作,我到處搜索,幾乎所有東西都嘗試過,但是我無法正常工作,我不知道爲什麼。這裏是我的代碼:OnLongClickListener不能與achartengine一起使用
mChartView.setLongClickable(true);
mChartView.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Log.i("ClickListener", "CLICK");
return false;
}
});
但事件從未被調用,我認爲這是因爲圖表是可滾動的,但沒有意義。我試過惠普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設置在同一個視圖?如果是的話,你可以發佈代碼嗎? – FoamyGuy
不,我只有OnLongClickListener。 – Andres