aChartEngine、GraphicalView OnClickListener 不起作用

2023-12-02

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

这是我的 OnResume 方法,取自 XYChartBuilder

@Override
protected 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 这样的对象的某些定义吗? 也许你忘记设置设置点击启用方法为真?!

或者也许你应该尝试:

setOnTouchListener 

用方法:

public boolean onTouch(View v, MotionEvent event)

这个对我有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

aChartEngine、GraphicalView OnClickListener 不起作用 的相关文章

随机推荐

  • 赋值的左侧必须是变量、属性或索引器

    我收到错误 但不知道为什么 static void decoupeTableau IEnumerable
  • Java JApplet 到 JFrame

    我想将 JApplet 转换为 JFrame 我在互联网上找到了这个代码 它是一个单词搜索游戏 我想在课程演示中使用此代码 但我不想把它放在小程序中 我要粘贴到此处的代码大约有 7 000 个字符 我尝试采用 JApplet 并扩展 JFr
  • Julia 中的逻辑索引

    在 MATLAB 中 要删除矩阵中具有 NaN 值的所有行 我编写了以下代码 myMatrix any isnan myMatrix 2 Where any isnan myMatrix 2 返回逻辑向量 我有办法在朱莉娅做到这一点吗 我似
  • Android Studio 任务“:app:preDexDebug”执行失败[重复]

    这个问题在这里已经有答案了 我的构建应用程序正在发生这种奇怪的行为 奇怪的是 这个com nineoldandroids是一个来自android资源库的jar 我尝试删除构建源并再次重新编译 但没有成功 我的构建等级 buildscript
  • 如何修复 int.Parse 中的 ArgumentNullException?

    这是在 Mono 中运行良好的 cs 文件 using System public class HelloWorld static public void Main Console WriteLine Enter a number int
  • 函数“sleep()”的正确 #include 是什么?

    我正在使用 Big Nerd Ranch 的书 Objective C 编程 它首先让我们在前几章中用 C 编写 在我创建的一个程序中 我使用了睡眠功能 书上告诉我要放 include
  • SockJs - 未找到“信息”路径

    我正在运行一个SockJS 的示例 运行 npm install 一切正常 Start server没有问题 当我第一次加载时测试页 我看到 404 调用失败http 127 0 0 1 echo info 我正在查看 sockjs 代码
  • 如何调用Android联系人列表?

    我正在制作一个 Android 应用程序 需要调用手机的联系人列表 我需要调用联系人列表功能 选择一个联系人 然后返回我的应用程序并显示该联系人的姓名 这是我在互联网上获得的代码 但它不起作用 import android app List
  • Windows Phone 8.1 中的 AutoSuggestBox 出现奇怪的结果

    我正在尝试使用标准AutoSuggestBox在 Windows Phone 8 1 XAML 应用程序中 但它的行为非常奇怪 在一个简单的演示中 我收集了 Items new ObservableCollection
  • Android - 加快在数据库中插入数据的速度

    我目前有一个 CSV 文件 我正在解析该文件 并尝试将数据插入到 android 数据库中 我遇到的问题是插入所有数据花费的时间太长 数据量很大 但我觉得不需要 20 分钟左右就能完成 基本上 我创建数据库 然后开始解析 在解析每个单独的
  • CameraSource .setAutoFocusEnabled(true) 返回:尽管设备支持自动对焦,但该设备不支持相机自动对焦

    下面是我的条形码扫描仪活动 除了 setAutoFocusEnabled true 之外 一切正常 它在运行时返回一条消息 显示我的设备不支持自动对焦 尽管 Samsung Tab E T561 是支持自动对焦的设备 import andr
  • 如何使用 R 和 ggplot 绘制逻辑回归模型的结果

    creat a new data frame and add a binary column called surv24 leukemia data lt data frame wbc leuk wbc ag leuk ag time le
  • 减小 pdf 大小 - Objective c

    我有一个pdf生成项目 它由一些文本和一个已存储在数据库中的图像组成 我想预览并邮寄生成的pdf 当只有文本数据时一切正常 如果我们的数据中有图像 就会出现问题 邮件收到 大小为 10MB 或以上的 pdf 即使它具有大小为 1MB 或以下
  • List RemoveAll() 没有删除项目

    我有一个看起来像这样的对象 Text Another lovely alert Category 2 UserAlerts UserId 2 这将传递到 Web API 并正确绑定到 Key Column Order 0 public lo
  • SwiftUI @FetchRequest 使应用程序崩溃并返回错误

    我正在尝试使用 Xcode 11 在 SwiftUI 的 mac 应用程序中使用核心数据 我在创建项目时勾选了 使用核心数据 我还创建了实体 称为 VisitedCases 并使用编辑器创建 NSManagedObject 子类文件 我还将
  • F#:从另一个列表中过滤一个列表中找到的项目

    假设我有两个列表 let a 1 1000 let b 250 500 如何获取包含值 1 249 501 1000 的新列表 由于您的列表已排序 因此您可以使用此 非尾递归 函数在线性时间内解决此问题 let rec except a b
  • Specs2 - 标记要运行的测试

    我已经使用 ScalaTest 一段时间了 我发现标记测试并从命令行仅运行具有特定标记的测试的功能非常有用 Specs2中有类似的东西吗 我知道您可以使用 testOnly 运行特定的测试类 但我只想使用规范中的特定标签运行测试 操作方法如
  • 如何在 CSS 中使用 :not 选择器?

    我的问题说明了一切 我是 CSS 新手 我正在尝试使用以下代码 但它不起作用 ul verticalNav declaration ul verticalNav li declaration ul verticalNav li a decl
  • AppCompat PreferenceActivity 向上按钮不起作用

    我正在尝试创建一个扩展 AppCompatPreferenceActivity 并在操作栏中实现向上按钮的活动 视觉上一切看起来都很好 但向上按钮不响应触摸事件 以下是我的java和xml代码 PrefrencesDisplayActivi
  • aChartEngine、GraphicalView OnClickListener 不起作用

    我是 android 新手 正在使用 aChartEngine 创建条形图 我想在用户单击图表时捕获 x 和 y 值 我已经查看了 aChartEngine 的演示 并且我的图表创建得很好 但是 当我单击图形时 onClickListner