Как мне можно добавить первые 5 значений акселерометра в массив?

Я пишу запрос на сервер и мне нужно первые 5 значений акселерометра добавить в массив, я пока без понятия как это сделать. Я уже сталкивался с подобной задачей, но тогда мне нужно было лишь отправить значения true(если данные изменяются) или false(если данные не меняются).

Вот код моей View Model:

 private val z = ArrayList<FloatArray>()
    fun sensorData(values: FloatArray) {
    values[0].toString()
    values[1].toString()
    values[2].toString()
    z.add(values)
    Log.d("Accelerometer", "${values[0]}")
    Log.d("Accelerometer", "${values[1]}")
    Log.d("Accelerometer", "${values[2]}") }

Мой код MainActivity

    override fun onSensorChanged(event: SensorEvent) {
    if (event.sensor.type == Sensor.TYPE_ACCELEROMETER) {
        sensorManager.unregisterListener(this)
        viewModel.sensorData(event.values)
    }
}

Даже если я и записываю первые 3 значения по всем осям(а их должно быть 5), то у меня в логах выводится ссылка на объект, а не его содержание. В общем я без понятия как это можно реализовать, посмотрел в интернете - толком ничего не нашел. Если поможете - буду премного благодарен.


Ответы (1 шт):

Автор решения: Rhaegar Targaryen

Я решил проблему. Пришлось мапнуть массив:

val accelerometerJson = z.map { it.joinToString(prefix = "[", postfix = "]") }

Я использовал joinToString, чтобы перевести все элементы массива в String, как по мне переопределять метод toString() не самое лучшее решение...

→ Ссылка