代码之家  ›  专栏  ›  技术社区  ›  Mumphus

Kotlin中的MPAndroidChart自定义标记视图

  •  1
  • Mumphus  · 技术社区  · 6 年前

    我正在将我的应用程序移植到android上,并且使用的是这个库的iOS版本,所以我对android开发不太熟悉。

    我试图实现这个类 XYMARKER 然后让它像我的iOS应用一样。但我在创建自定义类时遇到了一些问题,以下是我的问题:

    class XYMarkerView(context: Context, xAxisValueFormatter: IAxisValueFormatter): MarkerView(context, R.layout.marker_view) {
    
        var tvContent: TextView
        var xAxisValueFormatter: IAxisValueFormatter
        var format: DecimalFormat
    
        init{
            this.xAxisValueFormatter = xAxisValueFormatter
            tvContent = findViewById(R.id.tvContent)
            format = DecimalFormat("###.0")
        }
    
    //    fun XYMarkerView(context: Context , xAxisValueFormatter: IAxisValueFormatter) {
    //
    //
    //        this.xAxisValueFormatter = xAxisValueFormatter
    //        tvContent = findViewById(R.id.tvContent)
    //        format = DecimalFormat("###.0")
    //    }
    
        // callbacks everytime the MarkerView is redrawn, can be used to update the
        // content (user-interface)
        override fun refreshContent(e: Entry, highlight: Highlight) {
    
            tvContent.text = "x: " + xAxisValueFormatter.getFormattedValue(e.x, null) + ", y: " + format.format(e.y)
    
            super.refreshContent(e, highlight);
        }
    
        override fun getOffset(): MPPointF {
            return MPPointF(-(width / 2).toFloat(), -height.toFloat())
        }
    }
    

    我不确定自己做错了什么,但我已经在这件事上胡闹了一段时间,似乎无法让它发挥作用。现在,当我点击一个点时,我得到了一个错误:

    E/AndroidRuntime:致命异常:主 进程:com。实例艾克。graphtest。应用程序,PID:24549 JAVAlang.IllegalArgumentException:指定为非null的参数为null:方法kotlin。jvm。内部的内在的。检查参数完整,参数轴

    0 回复  |  直到 6 年前