You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ArrayAdapter使用XML字符串数组报错:期望id类型资源的解决方案

解决ArrayAdapter传入资源ID时的“Expected resource of type id”错误

你遇到的问题是误用了ArrayAdapter的构造方法——部分构造函数要求传入布局资源ID(类型为id),而你传入的是对应的array类型资源ID,导致Lint类型校验失败。以下两种方法可以解决问题,且不需要在Activity中手动创建数组:

方法1:使用ArrayAdapter.createFromResource()静态方法

这是Android官方提供的、专门用于从资源创建适配器的方法,能直接规避类型不匹配问题:

// 获取ListView实例
ListView listView = findViewById(R.id.listView);

// 从<string-array>资源创建适配器
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
    this,
    R.array.lsViewArray,
    android.R.layout.simple_list_item_1 // 可替换为自定义列表项布局
);

listView.setAdapter(adapter);

方法2:直接在ListView的XML布局中绑定资源

如果不需要在Java代码中对适配器做额外操作,完全可以跳过Java代码,直接在ListView的XML里通过entries属性绑定:

<ListView
    android:id="@+id/listView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:entries="@array/lsViewArray" />

系统会自动为ListView创建并绑定适配器,无需额外代码。

内容的提问来源于stack exchange,提问作者Aditya Deshwal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 06:32:04