Я пытаюсь отобразить текстовый файл из res / raw в текстовое представление с помощью onItemSelectedListener.
Я могу сделать это жесткое кодирование, но оно не будет эффективным, потому что у меня более 10 текстовых файлов. Поэтому я пытаюсь оптимизировать мой код и отображать текстовый файл на основе индекса, который считывается из файла JSON. Однако, когда я попробовал это, ничего не отображается в текстовых представлениях и не выдается никаких ошибок. Он просто говорит, что файл не может быть найден.
spSongs.onItemSelectedListener =
object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(
adapterView: AdapterView<*>,
view: View,
i: Int,
l: Long
) {
songIndex = i //remember what the user chooses
try {
var x = myJSON_array.getJSONObject(songIndex)
.getString("filename")
x = x.substring(0, x.lastIndexOf("."))
val temp = resources.getIdentifier(
x,
"raw",
packageName
)
val input_stream =
baseContext.resources.openRawResource(temp)
val text = input_stream.readBytes()
.toString(Charset.defaultCharset())
tvlyrics.text = text
} catch (e: JSONException) {
e.printStackTrace()
}
//end of try-catch for painting JSON decode
}//end of onItemSelected of Painting spinner
override fun onNothingSelected(adapterView: AdapterView<*>) {}
}// end of setOnItemSelectedListener
спасибо