diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/Any.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/Any.kt new file mode 100644 index 0000000..14d2a0d --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/extensions/Any.kt @@ -0,0 +1,5 @@ +package com.casic.qd.smartwell.extensions + +import com.google.gson.Gson + +fun Any.toJson(): String = Gson().toJson(this) \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/Any.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/Any.kt new file mode 100644 index 0000000..14d2a0d --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/extensions/Any.kt @@ -0,0 +1,5 @@ +package com.casic.qd.smartwell.extensions + +import com.google.gson.Gson + +fun Any.toJson(): String = Gson().toJson(this) \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt index cc1cddf..cca9306 100644 --- a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt +++ b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt @@ -31,7 +31,7 @@ */ object ChartViewHelper { private const val kTag = "ChartViewHelper" - private val decimalFormat = DecimalFormat("##0") + private val decimalFormat = DecimalFormat("##0.00") fun setLineChartData(chart: LineChart, entryModels: List) { val lineDataSets: MutableList = ArrayList() @@ -39,9 +39,9 @@ entryModels.forEachIndexed { index, it -> //格式化X轴日期 xAxisDate.add(it.entryDate.toString().formatDate()) - //设置数据 val dataSet = LineDataSet(it.entryList, it.entryList?.get(index)?.data.toString()) + dataSet.setDrawCircles(true) //线条颜色 dataSet.color = it.lineColor //圆点颜色 diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/Any.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/Any.kt new file mode 100644 index 0000000..14d2a0d --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/extensions/Any.kt @@ -0,0 +1,5 @@ +package com.casic.qd.smartwell.extensions + +import com.google.gson.Gson + +fun Any.toJson(): String = Gson().toJson(this) \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt index cc1cddf..cca9306 100644 --- a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt +++ b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt @@ -31,7 +31,7 @@ */ object ChartViewHelper { private const val kTag = "ChartViewHelper" - private val decimalFormat = DecimalFormat("##0") + private val decimalFormat = DecimalFormat("##0.00") fun setLineChartData(chart: LineChart, entryModels: List) { val lineDataSets: MutableList = ArrayList() @@ -39,9 +39,9 @@ entryModels.forEachIndexed { index, it -> //格式化X轴日期 xAxisDate.add(it.entryDate.toString().formatDate()) - //设置数据 val dataSet = LineDataSet(it.entryList, it.entryList?.get(index)?.data.toString()) + dataSet.setDrawCircles(true) //线条颜色 dataSet.color = it.lineColor //圆点颜色 diff --git a/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt index 560c129..c91e1ce 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt @@ -23,7 +23,6 @@ private lateinit var waterViewModel: WaterStatisticsViewModel private val entryModels: MutableList = ArrayList() private var startDate = "" - private var differ = 0 override fun initLayoutView(): Int = R.layout.activity_expanded @@ -85,7 +84,6 @@ } } //初始化折线图,X轴从0开始 - differ = startDate.differ(time.timestampToDate()) waterLineChart.init() waterViewModel.waterCountByDay(Constant.AREA_ID, startDate, time.timestampToDate()) } @@ -97,40 +95,26 @@ waterViewModel.areaDataModel.observe(this, { if (it.code == 200) { - it.data?.forEachIndexed { i, dataBean -> - val entryModel = LineChartEntryModel() - if (i <= differ) { - entryModel.lineColor = Constant.COLORS[i].convertColor() - } - entryModel.entryDate = dataBean.date - -// //每个entries都是一条折线 + val dataModel = it.data!! + //确定有几条折线 + val lines = dataModel[0].data?.size!! + for (i in 0 until lines) { + //每个entries都是一条折线 val entries: ArrayList = ArrayList() - for (j in 0..differ) { - val areaData = it.data!![j].data!![i] + val entryModel = LineChartEntryModel() + dataModel.forEachIndexed { j, dataBean -> + entryModel.lineColor = Constant.COLORS[i].convertColor() + entryModel.entryDate = dataBean.date + + val areaData = dataBean.data!![i] entries.add( - Entry(j.toFloat(), areaData.count!!.toFloat(), areaData.areaName) + Entry( + j.toFloat(), areaData.count!!.toFloat(), areaData.areaName + ) ) } entryModel.entryList = entries entryModels.add(entryModel) - - /** - * i的范围是[0,differ] - * */ - //每个entries都是一条折线 -// val entries: ArrayList = ArrayList() -// for (k in dataBean.data!!.indices) { -// /** -// * i的范围是[0,dataBean.data!!.indices] -// * */ -// val areaData = dataBean.data!![k] -// entries.add( -// Entry(k.toFloat(), areaData.count!!.toFloat(), areaData.areaName) -// ) -// } -// entryModel.entryList = entries -// entryModels.add(entryModel) } ChartViewHelper.setLineChartData(waterLineChart, entryModels) } diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/Any.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/Any.kt new file mode 100644 index 0000000..14d2a0d --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/extensions/Any.kt @@ -0,0 +1,5 @@ +package com.casic.qd.smartwell.extensions + +import com.google.gson.Gson + +fun Any.toJson(): String = Gson().toJson(this) \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt index cc1cddf..cca9306 100644 --- a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt +++ b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt @@ -31,7 +31,7 @@ */ object ChartViewHelper { private const val kTag = "ChartViewHelper" - private val decimalFormat = DecimalFormat("##0") + private val decimalFormat = DecimalFormat("##0.00") fun setLineChartData(chart: LineChart, entryModels: List) { val lineDataSets: MutableList = ArrayList() @@ -39,9 +39,9 @@ entryModels.forEachIndexed { index, it -> //格式化X轴日期 xAxisDate.add(it.entryDate.toString().formatDate()) - //设置数据 val dataSet = LineDataSet(it.entryList, it.entryList?.get(index)?.data.toString()) + dataSet.setDrawCircles(true) //线条颜色 dataSet.color = it.lineColor //圆点颜色 diff --git a/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt index 560c129..c91e1ce 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt @@ -23,7 +23,6 @@ private lateinit var waterViewModel: WaterStatisticsViewModel private val entryModels: MutableList = ArrayList() private var startDate = "" - private var differ = 0 override fun initLayoutView(): Int = R.layout.activity_expanded @@ -85,7 +84,6 @@ } } //初始化折线图,X轴从0开始 - differ = startDate.differ(time.timestampToDate()) waterLineChart.init() waterViewModel.waterCountByDay(Constant.AREA_ID, startDate, time.timestampToDate()) } @@ -97,40 +95,26 @@ waterViewModel.areaDataModel.observe(this, { if (it.code == 200) { - it.data?.forEachIndexed { i, dataBean -> - val entryModel = LineChartEntryModel() - if (i <= differ) { - entryModel.lineColor = Constant.COLORS[i].convertColor() - } - entryModel.entryDate = dataBean.date - -// //每个entries都是一条折线 + val dataModel = it.data!! + //确定有几条折线 + val lines = dataModel[0].data?.size!! + for (i in 0 until lines) { + //每个entries都是一条折线 val entries: ArrayList = ArrayList() - for (j in 0..differ) { - val areaData = it.data!![j].data!![i] + val entryModel = LineChartEntryModel() + dataModel.forEachIndexed { j, dataBean -> + entryModel.lineColor = Constant.COLORS[i].convertColor() + entryModel.entryDate = dataBean.date + + val areaData = dataBean.data!![i] entries.add( - Entry(j.toFloat(), areaData.count!!.toFloat(), areaData.areaName) + Entry( + j.toFloat(), areaData.count!!.toFloat(), areaData.areaName + ) ) } entryModel.entryList = entries entryModels.add(entryModel) - - /** - * i的范围是[0,differ] - * */ - //每个entries都是一条折线 -// val entries: ArrayList = ArrayList() -// for (k in dataBean.data!!.indices) { -// /** -// * i的范围是[0,dataBean.data!!.indices] -// * */ -// val areaData = dataBean.data!![k] -// entries.add( -// Entry(k.toFloat(), areaData.count!!.toFloat(), areaData.areaName) -// ) -// } -// entryModel.entryList = entries -// entryModels.add(entryModel) } ChartViewHelper.setLineChartData(waterLineChart, entryModels) } diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt index 1698881..3104f25 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt @@ -5,6 +5,7 @@ import android.os.Handler import android.os.Looper import android.os.Message +import android.util.Log import android.view.KeyEvent import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.GridLayoutManager @@ -124,32 +125,37 @@ //初始化折线图,X轴从0开始 val time = System.currentTimeMillis() - val startDate = time.timestampToLastWeekDate() + val startDate = time.timestampToLastMonthDate() +// val startDate = time.timestampToLastWeekDate() +// val startDate = time.timestampToDate() val endDate = time.timestampToDate() - val differ = startDate.differ(endDate) waterLineChart.init() //一周折线图数据 waterViewModel.waterCountByDay(Constant.AREA_ID, startDate, endDate) waterViewModel.areaDataModel.observe(this, { if (it.code == 200) { - it.data?.forEachIndexed { i, dataBean -> - val entryModel = LineChartEntryModel() - if (i <= differ) { - entryModel.lineColor = Constant.COLORS[i].convertColor() - } - entryModel.entryDate = dataBean.date - + val dataModel = it.data!! + //确定有几条折线 + val lines = dataModel[0].data?.size!! + for (i in 0 until lines) { //每个entries都是一条折线 val entries: ArrayList = ArrayList() - for (j in 0..differ) { - val areaData = it.data!![j].data!![i] + val entryModel = LineChartEntryModel() + dataModel.forEachIndexed { j, dataBean -> + entryModel.lineColor = Constant.COLORS[i].convertColor() + entryModel.entryDate = dataBean.date + + val areaData = dataBean.data!![i] entries.add( - Entry(j.toFloat(), areaData.count!!.toFloat(), areaData.areaName) + Entry( + j.toFloat(), areaData.count!!.toFloat(), areaData.areaName + ) ) } entryModel.entryList = entries entryModels.add(entryModel) } + Log.d(kTag, entryModels.toJson()) ChartViewHelper.setLineChartData(waterLineChart, entryModels) } }) diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/Any.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/Any.kt new file mode 100644 index 0000000..14d2a0d --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/extensions/Any.kt @@ -0,0 +1,5 @@ +package com.casic.qd.smartwell.extensions + +import com.google.gson.Gson + +fun Any.toJson(): String = Gson().toJson(this) \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt index cc1cddf..cca9306 100644 --- a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt +++ b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt @@ -31,7 +31,7 @@ */ object ChartViewHelper { private const val kTag = "ChartViewHelper" - private val decimalFormat = DecimalFormat("##0") + private val decimalFormat = DecimalFormat("##0.00") fun setLineChartData(chart: LineChart, entryModels: List) { val lineDataSets: MutableList = ArrayList() @@ -39,9 +39,9 @@ entryModels.forEachIndexed { index, it -> //格式化X轴日期 xAxisDate.add(it.entryDate.toString().formatDate()) - //设置数据 val dataSet = LineDataSet(it.entryList, it.entryList?.get(index)?.data.toString()) + dataSet.setDrawCircles(true) //线条颜色 dataSet.color = it.lineColor //圆点颜色 diff --git a/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt index 560c129..c91e1ce 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt @@ -23,7 +23,6 @@ private lateinit var waterViewModel: WaterStatisticsViewModel private val entryModels: MutableList = ArrayList() private var startDate = "" - private var differ = 0 override fun initLayoutView(): Int = R.layout.activity_expanded @@ -85,7 +84,6 @@ } } //初始化折线图,X轴从0开始 - differ = startDate.differ(time.timestampToDate()) waterLineChart.init() waterViewModel.waterCountByDay(Constant.AREA_ID, startDate, time.timestampToDate()) } @@ -97,40 +95,26 @@ waterViewModel.areaDataModel.observe(this, { if (it.code == 200) { - it.data?.forEachIndexed { i, dataBean -> - val entryModel = LineChartEntryModel() - if (i <= differ) { - entryModel.lineColor = Constant.COLORS[i].convertColor() - } - entryModel.entryDate = dataBean.date - -// //每个entries都是一条折线 + val dataModel = it.data!! + //确定有几条折线 + val lines = dataModel[0].data?.size!! + for (i in 0 until lines) { + //每个entries都是一条折线 val entries: ArrayList = ArrayList() - for (j in 0..differ) { - val areaData = it.data!![j].data!![i] + val entryModel = LineChartEntryModel() + dataModel.forEachIndexed { j, dataBean -> + entryModel.lineColor = Constant.COLORS[i].convertColor() + entryModel.entryDate = dataBean.date + + val areaData = dataBean.data!![i] entries.add( - Entry(j.toFloat(), areaData.count!!.toFloat(), areaData.areaName) + Entry( + j.toFloat(), areaData.count!!.toFloat(), areaData.areaName + ) ) } entryModel.entryList = entries entryModels.add(entryModel) - - /** - * i的范围是[0,differ] - * */ - //每个entries都是一条折线 -// val entries: ArrayList = ArrayList() -// for (k in dataBean.data!!.indices) { -// /** -// * i的范围是[0,dataBean.data!!.indices] -// * */ -// val areaData = dataBean.data!![k] -// entries.add( -// Entry(k.toFloat(), areaData.count!!.toFloat(), areaData.areaName) -// ) -// } -// entryModel.entryList = entries -// entryModels.add(entryModel) } ChartViewHelper.setLineChartData(waterLineChart, entryModels) } diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt index 1698881..3104f25 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt @@ -5,6 +5,7 @@ import android.os.Handler import android.os.Looper import android.os.Message +import android.util.Log import android.view.KeyEvent import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.GridLayoutManager @@ -124,32 +125,37 @@ //初始化折线图,X轴从0开始 val time = System.currentTimeMillis() - val startDate = time.timestampToLastWeekDate() + val startDate = time.timestampToLastMonthDate() +// val startDate = time.timestampToLastWeekDate() +// val startDate = time.timestampToDate() val endDate = time.timestampToDate() - val differ = startDate.differ(endDate) waterLineChart.init() //一周折线图数据 waterViewModel.waterCountByDay(Constant.AREA_ID, startDate, endDate) waterViewModel.areaDataModel.observe(this, { if (it.code == 200) { - it.data?.forEachIndexed { i, dataBean -> - val entryModel = LineChartEntryModel() - if (i <= differ) { - entryModel.lineColor = Constant.COLORS[i].convertColor() - } - entryModel.entryDate = dataBean.date - + val dataModel = it.data!! + //确定有几条折线 + val lines = dataModel[0].data?.size!! + for (i in 0 until lines) { //每个entries都是一条折线 val entries: ArrayList = ArrayList() - for (j in 0..differ) { - val areaData = it.data!![j].data!![i] + val entryModel = LineChartEntryModel() + dataModel.forEachIndexed { j, dataBean -> + entryModel.lineColor = Constant.COLORS[i].convertColor() + entryModel.entryDate = dataBean.date + + val areaData = dataBean.data!![i] entries.add( - Entry(j.toFloat(), areaData.count!!.toFloat(), areaData.areaName) + Entry( + j.toFloat(), areaData.count!!.toFloat(), areaData.areaName + ) ) } entryModel.entryList = entries entryModels.add(entryModel) } + Log.d(kTag, entryModels.toJson()) ChartViewHelper.setLineChartData(waterLineChart, entryModels) } }) diff --git a/app/src/main/java/com/casic/qd/smartwell/widgets/DetailsMarkerView.kt b/app/src/main/java/com/casic/qd/smartwell/widgets/DetailsMarkerView.kt index ca0cb2a..67888de 100644 --- a/app/src/main/java/com/casic/qd/smartwell/widgets/DetailsMarkerView.kt +++ b/app/src/main/java/com/casic/qd/smartwell/widgets/DetailsMarkerView.kt @@ -11,8 +11,9 @@ import java.util.* class DetailsMarkerView(context: Context?) : MarkerView(context, R.layout.popu_marker) { - private val decimalFormat = DecimalFormat("##0") + private val decimalFormat = DecimalFormat("##0.00") private val dayView: TextView = findViewById(R.id.dayView) + private val factoryView: TextView = findViewById(R.id.factoryView) private val dataView: TextView = findViewById(R.id.dataView) private var xAxisDate: MutableList = ArrayList() @@ -25,12 +26,10 @@ super.refreshContent(e, highlight) val data = e.data as String try { - dataView.text = String.format( - Locale.CHINA, "%s:%st", data, - decimalFormat.format(e.y.toString().toDouble()) - ) + factoryView.text = data + dataView.text = String.format("用水量:${decimalFormat.format(e.y.toString().toDouble())}t") if (data == "阀门" || data == "水表" || data == "管线" || data == "噪声仪") { - dayView.text = String.format(Locale.CHINA, "%s年", decimalFormat.format(e.x)) + dayView.text = String.format("${decimalFormat.format(e.x)}年") } else { val date = xAxisDate[(e.x).toInt()] val split = date.split("/") diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/Any.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/Any.kt new file mode 100644 index 0000000..14d2a0d --- /dev/null +++ b/app/src/main/java/com/casic/qd/smartwell/extensions/Any.kt @@ -0,0 +1,5 @@ +package com.casic.qd.smartwell.extensions + +import com.google.gson.Gson + +fun Any.toJson(): String = Gson().toJson(this) \ No newline at end of file diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt index cc1cddf..cca9306 100644 --- a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt +++ b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt @@ -31,7 +31,7 @@ */ object ChartViewHelper { private const val kTag = "ChartViewHelper" - private val decimalFormat = DecimalFormat("##0") + private val decimalFormat = DecimalFormat("##0.00") fun setLineChartData(chart: LineChart, entryModels: List) { val lineDataSets: MutableList = ArrayList() @@ -39,9 +39,9 @@ entryModels.forEachIndexed { index, it -> //格式化X轴日期 xAxisDate.add(it.entryDate.toString().formatDate()) - //设置数据 val dataSet = LineDataSet(it.entryList, it.entryList?.get(index)?.data.toString()) + dataSet.setDrawCircles(true) //线条颜色 dataSet.color = it.lineColor //圆点颜色 diff --git a/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt index 560c129..c91e1ce 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt @@ -23,7 +23,6 @@ private lateinit var waterViewModel: WaterStatisticsViewModel private val entryModels: MutableList = ArrayList() private var startDate = "" - private var differ = 0 override fun initLayoutView(): Int = R.layout.activity_expanded @@ -85,7 +84,6 @@ } } //初始化折线图,X轴从0开始 - differ = startDate.differ(time.timestampToDate()) waterLineChart.init() waterViewModel.waterCountByDay(Constant.AREA_ID, startDate, time.timestampToDate()) } @@ -97,40 +95,26 @@ waterViewModel.areaDataModel.observe(this, { if (it.code == 200) { - it.data?.forEachIndexed { i, dataBean -> - val entryModel = LineChartEntryModel() - if (i <= differ) { - entryModel.lineColor = Constant.COLORS[i].convertColor() - } - entryModel.entryDate = dataBean.date - -// //每个entries都是一条折线 + val dataModel = it.data!! + //确定有几条折线 + val lines = dataModel[0].data?.size!! + for (i in 0 until lines) { + //每个entries都是一条折线 val entries: ArrayList = ArrayList() - for (j in 0..differ) { - val areaData = it.data!![j].data!![i] + val entryModel = LineChartEntryModel() + dataModel.forEachIndexed { j, dataBean -> + entryModel.lineColor = Constant.COLORS[i].convertColor() + entryModel.entryDate = dataBean.date + + val areaData = dataBean.data!![i] entries.add( - Entry(j.toFloat(), areaData.count!!.toFloat(), areaData.areaName) + Entry( + j.toFloat(), areaData.count!!.toFloat(), areaData.areaName + ) ) } entryModel.entryList = entries entryModels.add(entryModel) - - /** - * i的范围是[0,differ] - * */ - //每个entries都是一条折线 -// val entries: ArrayList = ArrayList() -// for (k in dataBean.data!!.indices) { -// /** -// * i的范围是[0,dataBean.data!!.indices] -// * */ -// val areaData = dataBean.data!![k] -// entries.add( -// Entry(k.toFloat(), areaData.count!!.toFloat(), areaData.areaName) -// ) -// } -// entryModel.entryList = entries -// entryModels.add(entryModel) } ChartViewHelper.setLineChartData(waterLineChart, entryModels) } diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt index 1698881..3104f25 100644 --- a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt +++ b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt @@ -5,6 +5,7 @@ import android.os.Handler import android.os.Looper import android.os.Message +import android.util.Log import android.view.KeyEvent import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.GridLayoutManager @@ -124,32 +125,37 @@ //初始化折线图,X轴从0开始 val time = System.currentTimeMillis() - val startDate = time.timestampToLastWeekDate() + val startDate = time.timestampToLastMonthDate() +// val startDate = time.timestampToLastWeekDate() +// val startDate = time.timestampToDate() val endDate = time.timestampToDate() - val differ = startDate.differ(endDate) waterLineChart.init() //一周折线图数据 waterViewModel.waterCountByDay(Constant.AREA_ID, startDate, endDate) waterViewModel.areaDataModel.observe(this, { if (it.code == 200) { - it.data?.forEachIndexed { i, dataBean -> - val entryModel = LineChartEntryModel() - if (i <= differ) { - entryModel.lineColor = Constant.COLORS[i].convertColor() - } - entryModel.entryDate = dataBean.date - + val dataModel = it.data!! + //确定有几条折线 + val lines = dataModel[0].data?.size!! + for (i in 0 until lines) { //每个entries都是一条折线 val entries: ArrayList = ArrayList() - for (j in 0..differ) { - val areaData = it.data!![j].data!![i] + val entryModel = LineChartEntryModel() + dataModel.forEachIndexed { j, dataBean -> + entryModel.lineColor = Constant.COLORS[i].convertColor() + entryModel.entryDate = dataBean.date + + val areaData = dataBean.data!![i] entries.add( - Entry(j.toFloat(), areaData.count!!.toFloat(), areaData.areaName) + Entry( + j.toFloat(), areaData.count!!.toFloat(), areaData.areaName + ) ) } entryModel.entryList = entries entryModels.add(entryModel) } + Log.d(kTag, entryModels.toJson()) ChartViewHelper.setLineChartData(waterLineChart, entryModels) } }) diff --git a/app/src/main/java/com/casic/qd/smartwell/widgets/DetailsMarkerView.kt b/app/src/main/java/com/casic/qd/smartwell/widgets/DetailsMarkerView.kt index ca0cb2a..67888de 100644 --- a/app/src/main/java/com/casic/qd/smartwell/widgets/DetailsMarkerView.kt +++ b/app/src/main/java/com/casic/qd/smartwell/widgets/DetailsMarkerView.kt @@ -11,8 +11,9 @@ import java.util.* class DetailsMarkerView(context: Context?) : MarkerView(context, R.layout.popu_marker) { - private val decimalFormat = DecimalFormat("##0") + private val decimalFormat = DecimalFormat("##0.00") private val dayView: TextView = findViewById(R.id.dayView) + private val factoryView: TextView = findViewById(R.id.factoryView) private val dataView: TextView = findViewById(R.id.dataView) private var xAxisDate: MutableList = ArrayList() @@ -25,12 +26,10 @@ super.refreshContent(e, highlight) val data = e.data as String try { - dataView.text = String.format( - Locale.CHINA, "%s:%st", data, - decimalFormat.format(e.y.toString().toDouble()) - ) + factoryView.text = data + dataView.text = String.format("用水量:${decimalFormat.format(e.y.toString().toDouble())}t") if (data == "阀门" || data == "水表" || data == "管线" || data == "噪声仪") { - dayView.text = String.format(Locale.CHINA, "%s年", decimalFormat.format(e.x)) + dayView.text = String.format("${decimalFormat.format(e.x)}年") } else { val date = xAxisDate[(e.x).toInt()] val split = date.split("/") diff --git a/app/src/main/res/layout/popu_marker.xml b/app/src/main/res/layout/popu_marker.xml index 785a1e0..f93f212 100644 --- a/app/src/main/res/layout/popu_marker.xml +++ b/app/src/main/res/layout/popu_marker.xml @@ -19,11 +19,23 @@ android:textSize="12sp" /> + + \ No newline at end of file