首页 > 解决方案 > Kotlin 中的 MPAndroidChart 自定义标记视图

问题描述

我正在将我的应用程序移植到 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.example.eic.graphtest.app,PID:24549 java.lang.IllegalArgumentException:指定为非空的参数为空:方法 kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,参数轴

标签: mpandroidchart

解决方案


推荐阅读