Можно ли преобразовать число, взятое из TextView в тип Double и записать его в файл?
Я создала функцию для записи данных в файл. В файле уже лежит некоторое число (например 2.53), мне надо считать данные из TextView и добавить их к тому, что уже лежит в файле. Вот моя функция:
fun saveText(view: View?) {
var fin: FileInputStream? = null
fin = openFileInput(FILE_LEVEL)
val bytes = ByteArray(fin.available())
fin.read(bytes)
val t = String(bytes)//данные из файла
val t2 = kol.getText()//данные из TextView
fin?.close()
var fos: FileOutputStream? = null
fos = openFileOutput(FILE_LEVEL, MODE_PRIVATE)
fos.write(((t.toDouble() + t2.toDouble()).toString()).toByteArray())
fos?.close()
}
Проблема заключается в том, что у меня подсвечивается красным цветом
.toDouble()
В интернете я нашла такую функцию, но всё равно вылетает ошибка
fun String.toDouble(): Double = java.lang.Double.parseDouble(this.toString())
Помогите пожалуйста решить эту проблему
Ответы (1 шт):
Автор решения: Vadik
→ Ссылка
Метод getText() у TextView возвращает CharSequence. Чтобы получить строку, необходимо вызвать toString():
val text = textView.getText().toString()
И тогда вы сможете воспользоваться вашей функцией fun String.toDouble():
text.toDouble()