AnyCharts Android hide/reload 信息
AnyCharts Android hide/reload information
一段时间以来,我一直在努力解决这个问题,但我无法让它发挥作用。
此代码(下方)在一个函数内。我第一次调用它时,它运行良好。但它似乎在第一次通话后什么也没做。调试后我知道它进入了验证我是否想要湿度 and/or 温度的语句,但是我不明白为什么它不改变图表。
我还尝试显示所有信息并在之后隐藏它。也没有成功。
有谁知道我做错了什么?谢谢!
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)
}```
我设法让它工作了。
对于任何为此苦苦挣扎的人,您所要做的就是:
而不是声明
val set = Set.instantiate()
函数内部
声明为全局
private var set: Set? = null
然后在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)
}
一段时间以来,我一直在努力解决这个问题,但我无法让它发挥作用。 此代码(下方)在一个函数内。我第一次调用它时,它运行良好。但它似乎在第一次通话后什么也没做。调试后我知道它进入了验证我是否想要湿度 and/or 温度的语句,但是我不明白为什么它不改变图表。 我还尝试显示所有信息并在之后隐藏它。也没有成功。 有谁知道我做错了什么?谢谢!
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)
}```
我设法让它工作了。 对于任何为此苦苦挣扎的人,您所要做的就是:
而不是声明
val set = Set.instantiate()
函数内部
声明为全局
private var set: Set? = null
然后在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)
}