android–aChartEngine,GraphicalView OnClickListener无效

android–aChartEngine,GraphicalView OnClickListener无效,第1张

概述我是android的新手,我正在使用aChartEngine来创建一个条形图.我想在用户点击图表时捕获x和y值.我查看了来自aChartEngine的演示,让我的图表创建得很好.但是当我点击graphy时,onClickListner不起作用.我已经在OnResume方法中定义了监听器,但它不起作用.任何想法将不胜感激.我在这里

我是android的新手,我正在使用aChartEngine来创建一个条形图.我想在用户点击图表时捕获x和y值.我查看了来自aChartEngine的演示,让我的图表创建得很好.但是当我点击graphy时,onClickListner不起作用.我已经在OnResume方法中定义了监听器,但它不起作用.任何想法将不胜感激.我在这里错过了什么吗?

这是我的OnResume方法,它取自XYChartBuilder

@OverrIDeprotected voID onResume() {  super.onResume();Toast.makeText(Clickable2.this, "In OnResume", Toast.LENGTH_SHORT).show();  if (mChartVIEw == null) {     Toast.makeText(Clickable2.this, "mChartVIEw is null", Toast.LENGTH_SHORT).show();          linearLayout layout = (linearLayout) findVIEwByID(R.ID.chart);    mChartVIEw = ChartFactory.getbarChartVIEw(this,mDatasetMethod(Titles,x,values),renderer,Type.DEFAulT);    renderer.setClickEnabled(true);    renderer.setSelectableBuffer(100);    //OnClickListener    mChartVIEw.setonClickListener(new VIEw.OnClickListener() {     // @OverrIDe      public voID onClick(VIEw v) { Toast.makeText(Clickable2.this, "ON CliCK", Toast.LENGTH_SHORT).show();                      SerIEsSelection serIEsSelection = mChartVIEw.getCurrentSerIEsAndPoint();        double[] xy = mChartVIEw.toRealPoint(0);        if (serIEsSelection == null) {          Toast.makeText(Clickable2.this, "No chart element was clicked", Toast.LENGTH_SHORT)              .show();        } else {          Toast.makeText(                  Clickable2.this,              "Chart element in serIEs index " + serIEsSelection.getSerIEsIndex()                  + " data point index " + serIEsSelection.getPointIndex() + " was clicked"                  + " closest point value X=" + serIEsSelection.getXValue() + ", Y=" + serIEsSelection.getValue()                  + " clicked point value X=" + (float) xy[0] + ", Y=" + (float) xy[1], Toast.LENGTH_SHORT).show();        }      }    });    //LongClickListener    mChartVIEw.setonLongClickListener(new VIEw.OnLongClickListener() {    //  @OverrIDe      public boolean onLongClick(VIEw v) {        SerIEsSelection serIEsSelection = mChartVIEw.getCurrentSerIEsAndPoint();  Toast.makeText(Clickable2.this, "ON LONG CliCK", Toast.LENGTH_SHORT).show();           if (serIEsSelection == null) {          Toast.makeText(Clickable2.this, "No chart element was long pressed",              Toast.LENGTH_SHORT);          return false; // no chart element was long pressed, so let something          // else handle the event        } else {          Toast.makeText(Clickable2.this, "Chart element in serIEs index "              + serIEsSelection.getSerIEsIndex() + " data point index "              + serIEsSelection.getPointIndex() + " was long pressed", Toast.LENGTH_SHORT);          return true; // the element was long pressed - the event has been          // handled        }      }    });    mChartVIEw.addZoomListener(new ZoomListener() {      public voID zoomApplIEd(ZoomEvent e) {        String type = "out";        if (e.isZoomIn()) {          type = "in";        }        System.out.println("Zoom " + type + " rate " + e.getZoomrate());      }      public voID zoomreset() {        System.out.println("reset");      }    }, true, true);    mChartVIEw.addPanListener(new PanListener() {      public voID panApplIEd() {        System.out.println("New X range=[" + renderer.getXAxisMin() + ", " + renderer.getXAxisMax()            + "], Y range=[" + renderer.getYAxisMax() + ", " + renderer.getYAxisMax() + "]");      }    });    layout.addVIEw(mChartVIEw, new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));    boolean enabled = mDataset.getSerIEsCount() > 0;  } else {    mChartVIEw.repaint(); Toast.makeText(Clickable2.this, "mChartVIEw is NOT null", Toast.LENGTH_SHORT).show();    }} 

解决方法:

你能检查代码中某些对象的定义,比如XYMultipleSerIEsRenderer吗?
也许你忘了将setClickEnabled方法设置为true?!

或许你应该尝试:

setontouchListener 

用方法:

public boolean ontouch(VIEw v, MotionEvent event)

这个对我有用.

总结

以上是内存溢出为你收集整理的android – aChartEngine,GraphicalView OnClickListener无效全部内容,希望文章能够帮你解决android – aChartEngine,GraphicalView OnClickListener无效所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1105744.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存