Как отобразить текстиль в текстовом представлении на основе onItemSelectedListener? - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь отобразить текстовый файл из 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

спасибо

1 Ответ

0 голосов
/ 01 ноября 2019

Решил, я вызывал неправильный массив внутри объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...