AnyCharts Android隐藏/重新加载信息

AnyCharts Android隐藏/重新加载信息,android,anychart,Android,Anychart,我一直想弄明白这一点有一段时间了,但我无法让它工作。 此代码(如下)位于函数内部。我第一次给它打电话时,它工作得很好。但在第一次通话后,它似乎什么也没做。调试后,我知道它会输入语句,验证我是否需要湿度和/或温度,但我不理解为什么它不会改变图表。 我还试图显示所有的信息,然后隐藏起来。也没有成功。 有人知道我做错了什么吗?谢谢 APIlib.getInstance().setActiveAnyChartView(chartView) chartView.setPro

我一直想弄明白这一点有一段时间了,但我无法让它工作。 此代码(如下)位于函数内部。我第一次给它打电话时,它工作得很好。但在第一次通话后,它似乎什么也没做。调试后,我知道它会输入语句,验证我是否需要湿度和/或温度,但我不理解为什么它不会改变图表。 我还试图显示所有的信息,然后隐藏起来。也没有成功。 有人知道我做错了什么吗?谢谢

        APIlib.getInstance().setActiveAnyChartView(chartView)
        chartView.setProgressBar(findViewById(R.id.progress_bar))

        val chart = AnyChart.line()
        chart.animation(false)


        chart.crosshair().enabled(true)
        chart.crosshair()
            .yLabel(true)
            .yStroke(null as Stroke?, null, null, null as String?, null as String?)


        chart.tooltip().positionMode(TooltipPositionMode.POINT)


        chart.yAxis(0).title("Nivel de Humidade e Temperatura")
        chart.title("Progresso de Humidade e Temperatura")

        val seriesData: MutableList<DataEntry> = ArrayList()
        //---------------------------------(somehard coded entries)-----------------------------------
        seriesData.add(customDataEntry("1986", 6.9, 0.0))
        seriesData.add(customDataEntry("1987", 7.1, 4.0))
        seriesData.add(customDataEntry("1988", 8.5, 6.2))
        seriesData.add(customDataEntry("1989", 9.2, 11.8))
        seriesData.add(customDataEntry("1990", 10.1, 13.0))
        seriesData.add(customDataEntry("1991", 11.6, 13.9))
        //-------------------------------------------------------------------------------------------------
        val set = Set.instantiate()

        set.data(seriesData)
        val series1Mapping: Mapping = set.mapAs("{ x: 'x', value: 'value1' }")
        val series2Mapping: Mapping = set.mapAs("{ x: 'x', value: 'value2' }")

        if(checkBoxTemperature.isChecked)
        {
            val series: Line = chart.line(series1Mapping)
            series.name("Temperatura")
            series.hovered().markers().enabled(true)
            series.hovered().markers()
                .type(MarkerType.CIRCLE)
                .size(4.0)

            series.tooltip()
                .position("right")
                .anchor(Anchor.LEFT_CENTER)
        }

        if(checkBoxHumidade.isChecked)
        {

            val series: Line = chart.line(series2Mapping)
            series.name("Humidade")
            series.hovered().markers().enabled(true)
            series.hovered().markers()
                .type(MarkerType.CIRCLE)
                .size(4.0)
            series.tooltip()
                .position("right")
                .anchor(Anchor.LEFT_CENTER)

        }

        chart.legend().enabled(true)
        chart.legend().fontSize(13.0)

        chartView.setChart(chart)
    }```
APIlib.getInstance().setActiveAnyChartView(chartView)
chartView.setProgressBar(findViewById(R.id.progress_bar))
val chart=AnyChart.line()
图表.动画(错误)
chart.crosshair()已启用(true)
图表.十字线()
.yLabel(对)
.yStroke(空作为笔划?、空、空、空作为字符串?、空作为字符串?)
chart.tooltip().positionMode(TooltipPositionMode.POINT)
图表yAxis(0).标题(“湿度和温度的变化”)
图表标题(“湿度和温度进展”)
val seriesData:MutableList=ArrayList()
//---------------------------------(一些硬编码条目)-----------------------------------
seriesData.add(customDataEntry(“1986”,6.9,0.0))
seriesData.add(customDataEntry(“1987”,7.1,4.0))
seriesData.add(customDataEntry(“1988”,8.5,6.2))
seriesData.add(customDataEntry(“1989”,9.2,11.8))
seriesData.add(customDataEntry(“1990”,10.1,13.0))
seriesData.add(customDataEntry(“1991”,11.6,13.9))
//-------------------------------------------------------------------------------------------------
val set=set.instantiate()
集合数据(系列数据)
val series1Mapping:Mapping=set.mapAs(“{x:'x',value:'value1'}”)
val series2Mapping:Mapping=set.mapAs(“{x:'x',value:'value2'}”)
如果(检查框温度已检查)
{
val系列:直线=图表。直线(系列1映射)
系列名称(“温度”)
series.hovered().markers().enabled(true)
series.hovered().markers()
.type(MarkerType.CIRCLE)
.尺寸(4.0)
series.tooltip()
.位置(“右”)
.锚定(锚定左_中心)
}
如果(复选框Humidade.isChecked)
{
val系列:直线=图表。直线(系列2映射)
系列名称(“Humidade”)
series.hovered().markers().enabled(true)
series.hovered().markers()
.type(MarkerType.CIRCLE)
.尺寸(4.0)
series.tooltip()
.位置(“右”)
.锚定(锚定左_中心)
}
chart.legend().已启用(true)
chart.legend().fontSize(13.0)
图表视图。设置图表(图表)
}```

我设法让它工作起来。 对于任何与此抗争的人,您所要做的就是:

而不是宣布

val set=set.instantiate()
函数内部

宣布它是全球性的

专用变量集:集?=空

然后在onCreate()方法上分配它

set=set.instantiate()

现在,每次我想在图表上进行更改时,我都使用这个变量

例如:

chart!!.yAxis(0).title("Humidity & Temperature Levels")
chart!!.title("Progress of Humidity and Temperature between " + custom_interval_start.get(Calendar.DAY_OF_MONTH) + "/" + custom_interval_start.get(Calendar.MONTH) + "/" + custom_interval_start.get(Calendar.YEAR) +  " e " + custom_interval_end.get(Calendar.DAY_OF_MONTH) + "/" + custom_interval_end.get(Calendar.MONTH) + "/" + custom_interval_end.get(Calendar.YEAR))

if(seriesData.isEmpty()){
   chartView!!.visibility = View.INVISIBLE
}
else
{
    chartView!!.visibility = View.VISIBLE
    set!!.data(seriesData)
}


请问,你能描述一下你在其他电话中期望的行为吗?执行此代码将始终提供相同的结果-重新创建图表。可能你想应用新数据或更改任何图表设置?我设法修复了它,我所要做的就是在外部声明图表/笛卡尔坐标,并在整个程序中保存变量并在那里进行任何更改。