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

Я новичок в разработке Kotlin и Android, и я хотел создать фрагмент с ListView из ImageViews, но по какой-то странной причине я получаю сообщение об ошибке:

java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView

Вот мой код Fragment.kt

var array = arrayOf(
        R.drawable.serbia,
        R.drawable.croatia,
        R.drawable.bulgaria,
        R.drawable.azerbejdzan,
        R.drawable.hungari)

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        val context = context as MainActivity

        val lv = context.findViewById(R.id.listview_1) as ListView

        val adapter = ArrayAdapter(context, R.layout.simple_list_item_1, R.id.image1, array)
        lv.adapter = adapter
}

А вот и мой simple_list_item_1.xml

<?xml version = "1.0" encoding = "utf-8"?>
<ImageView xmlns:android = "http://schemas.android.com/apk/res/android"
    xmlns:tools = "http://schemas.android.com/tools"
    android:id = "@+id/image1"
    android:layout_width = "fill_parent"
    android:layout_height = "fill_parent"
    android:padding = "10dip"
    tools:ignore = "ContentDescription">
</ImageView>

Я сделал это, используя список строк и TextView, и он работает хорошо, но я не могу понять, как это сделать с изображениями. Любой совет?

4
0
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны создать новый CustomAdapter, который является расширением BaseAdapter, и этот адаптер должен принимать массив и контекст в качестве параметров в конструкторе. Вы должны реализовать метод getView этого адаптера и использовать макет внутри этого метода. Найдите изображение из этого макета, используя метод findViewById, и установите изображение в этот компонент. в конце метода вернуть макет как результат. если у вас есть какие-либо вопросы, вы можете задать их. Пожалуйста, проверьте этот URL: https://demonuts.com/android-listview-kotlin/

Я следовал инструкции, и мне удалось заставить ее работать! Спасибо большое! Не знал, что отображать изображение будет так сложно...

Nikola Knežević 16.05.2022 19:27

Другие вопросы по теме