Я новичок в разработке 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, и он работает хорошо, но я не могу понять, как это сделать с изображениями. Любой совет?
Вы должны создать новый CustomAdapter, который является расширением BaseAdapter, и этот адаптер должен принимать массив и контекст в качестве параметров в конструкторе. Вы должны реализовать метод getView этого адаптера и использовать макет внутри этого метода. Найдите изображение из этого макета, используя метод findViewById, и установите изображение в этот компонент. в конце метода вернуть макет как результат. если у вас есть какие-либо вопросы, вы можете задать их. Пожалуйста, проверьте этот URL: https://demonuts.com/android-listview-kotlin/
Я следовал инструкции, и мне удалось заставить ее работать! Спасибо большое! Не знал, что отображать изображение будет так сложно...