我是Kotlin和Android开发的新手,我想制作一个包含ImageView列表视图的片段,但出于某种奇怪的原因,我得到一个错误,上面说:

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

这是我的片段.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
}

这是我的简单 list .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>

我使用了一个字符串列表和一个文本视图,效果很好,但我似乎不知道如何处理图像.有什么建议吗?

推荐答案

您应该创建新的CustomAdapter,它是从BaseAdapter扩展而来的,这个适配器应该将数组、上下文作为构造函数中的参数.您应该实现该适配器的getView方法,并使用该方法内部的布局.使用findViewById方法从此布局中查找imageview,并将图像设置到此组件中.在方法末尾,返回布局作为结果.如果你有任何问题,你可以问.请判断这个网址:https://demonuts.com/android-listview-kotlin/

Android相关问答推荐

Android Kotlin DSL Gradle找不到自定义存储库中的依赖项

合成 colored颜色 的GSON反序列化

使用Android Jetpack Compose,为子Composable定义ViewModel是不是一种糟糕的做法?

如何从sqlite数据库中检索数据到碎片android?

Android Kotlin ImageView内置于Kotlin ImageView中.适配器未按预期更新

Jetpack Compose:根据盒子中的最大视图固定宽度和高度

无法插入 LayoutNode@cc72396 子级,因为它已有父级

在本地通知中设置自定义声音

Android Studio Relay插件(版本0.3.07)错误

如何在每次显示可组合项时执行代码(并且只执行一次)

为什么我收到这个错误我需要安装 android studio

当父布局的背景为浅色时,Android ProgressBar 背景 colored颜色 变为灰色

Compose 状态不是 recomposing

我怎样才能在多行 TextView 旁边有一个 ImageView 并且不超过父级的限制?

根据 Jetpack Compose 中的生命周期正确处理变量/函数

无法通过 retrofit 解析对 kotlin 数据类的 xml 响应

获取模板向导配方类 Intellij 中的应用程序包名称

如何在 Android 上移动 EditText 上的图标?

在 Jetpack Compose 中 Select 要省略的文本

Google Play 服务登录在 Unity Android 上无法正常运行