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

Kotlin Fragment场景下Spinner无法填充下拉选项问题求助

问题修复指引
  • 布局ID与代码绑定ID不匹配
    代码中通过binding获取的控件ID是nutSpinner,但布局文件里Spinner的实际ID为desSpinner,二者不一致会导致代码拿到的控件与布局渲染的控件不对应,可选择将布局ID改为@+id/nutSpinner,或者将代码中取值改为binding.desSpinner保持一致。
  • 适配器配置代码全部被注释
    现有Kotlin代码中所有和ArrayAdapter初始化、给Spinner设置适配器的逻辑都被包裹在注释块中,没有实际执行,Spinner自然没有可加载的选项数据。
  • 多余的布局inflate逻辑无效
    你已经使用ViewBinding方案,不需要额外inflate新的布局实例再调用findViewById找控件,直接通过binding获取的控件操作即可。
修复后的代码示例

Kotlin业务代码

//Setting Spinner Info
val weight_units = resources.getStringArray(R.array.weight_units)
// 此处控件名需和布局ID保持一致
val nut_spinner = binding.nutSpinner
if (nut_spinner != null) {
    // 初始化适配器
    val nut_adapter = ArrayAdapter<String>(requireContext(), android.R.layout.simple_spinner_item, weight_units)
    // 配置下拉列表项布局,不可省略
    nut_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
    // 给Spinner绑定适配器
    nut_spinner.adapter = nut_adapter
}

布局Spinner代码(适配上述代码的ID版本)

<Spinner
    android:id="@+id/nutSpinner"
    android:layout_width="97dp"
    android:layout_height="36dp"
    android:layout_marginTop="76dp"
    android:layout_marginEnd="16dp"
    android:layout_marginRight="16dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/textView2" />

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:09:02