Kotlin开发中ListView绑定ArrayAdapter后无数据显示问题求助
问题分析与解决方案
你的ListView未显示数据,核心问题出在CustomAdapter的泛型类型错误以及未正确将数据源传递给ArrayAdapter父类:
- 你继承
ArrayAdapter<Datasource>,但实际数据源是List<String>,泛型类型不匹配导致父类无法识别数据。 ArrayAdapter的构造方法需要接收数据源列表,但你没有在自定义Adapter的构造中把数据传给父类,导致父类无数据可展示。
修改后的代码
CustomAdapter.kt
修正泛型类型,并将数据源传递给父类构造:
class CustomAdapter( mContext: Context, layoutId: Int, textId: Int, dataList: List<String> ) : ArrayAdapter<String>(mContext, layoutId, textId, dataList) { // 若无需自定义布局逻辑,此处无需额外代码,父类会自动完成文本绑定 }
其他文件无需修改
Datasource.kt和MainActivity.kt的代码逻辑正确,保持原样即可。
额外检查点
- 确认
item_list.xml中存在ID为Affirmation_Text的TextView,且根布局宽度设为match_parent保证文本能完整显示。 - 确认
activity_main.xml中的ListView ID确实是Item_View,且其宽高设置为可展示的范围(比如match_parent)。
内容的提问来源于stack exchange,提问作者Jaguar
相关产品推荐
相关产品推荐

