Почему мое приложение работает, только когда я назначаю строку переменной прямо в коде при использовании функции OpenFileInput/Ouput
В моем приложении есть функция, которая сохраняет данные во внутреннем хранилище и получает имя файла из поля edittext. Этот текст редактирования заполняется функцией setText. Однако происходит сбой при попытке открыть OpenFileOutput с именем, которое было получено из поля edittext, которое было "автоматически заполнено".
Но когда я присваиваю одну и ту же строку одной и той же переменной в коде (например: filename = "a" вместо filename = smth.text.toString()), это работает просто отлично.
Я также попытался увидеть с помощью функции toast, что она получает из поля, и я получила то, что ожидала получить, строку из поля, которая была автоматически заполнена, поэтому она работает с другой функцией, но не с функцией OpenFileOutput. Я перепробовал все, и я понятия не имею, что может вызвать проблему.
fun saveResults(view: View) {
//Gets a string from a field with the .setText() function
val showName = findViewById<EditText>(R.id.saveName) as EditText
var filename: String = showName.text.toString()
//If I assign any string here (filename = "John") it works
//Date
val getDate = Date()
val stringDate: String = getDate.toString()
val date = stringDate.split(" ")
//Creates a string that will be saved ti internal storage and splitted in the future with the .split("_") function
var string: String = aText + "_" + date[2] + "_" + date[1] + "_" + date[5]
//Saves data to the internal storage
var fos: FileOutputStream
fos = openFileOutput(filename, Context.MODE_PRIVATE)
fos.write(string.toByteArray(Charset.defaultCharset()))
fos.close()
//Shows a toast
Toast.makeText(this, "Saved to $filename", Toast.LENGTH_SHORT).show()}
PS Я также пытался импортировать имя из внутренней памяти, но проблема была идентична. Я новичок в Kotlin или Android. Спасибо.