【问题标题】:Populate Spinner in Android from List of Strings从字符串列表填充 Android 中的 Spinner
【发布时间】:2020-12-12 16:25:38
【问题描述】:

(如果您认为这个问题是重复的,请检查其他答案是否都是 Java 而不是 Kotlin)

我用这个 Kotlin 代码在一个 Android 应用程序中生成了一个微调器:

val cameraSpinner: Spinner = findViewById(R.id.cameras_spinner)

我希望微调器填充这个名为 camOptions 的字符串列表:

val camOptions = arrayOfNulls<String>(cameraList.size)
for (i in cameraList.indices) { camOptions[i] = cameraList[i].name }

我通过创建这个适配器来做到这一点:

ArrayAdapter.createFromResource(this, camOptions, android.R.layout.simple_spinner_item).also {
    adapter ->
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
    cameraSpinner.adapter = adapter }

然而,Android Studio 抱怨“camOptions”是 createFromResource() 的第二个参数:

(IDE ERROR) Type mismatch.  Required:Int  Found:Array<String?>

该函数需要一个整数作为某个文本对象列表的资源 ID,而不是实际的文本对象列表。我在预定义文本的 Android 文档中看到了它是如何工作的(在 XML 中加载值,然后调用该资源),但在我的情况下,我的相机列表是在运行时生成的,所以我没有那么奢侈。

如何获取我的字符串列表以填充微调器?

【问题讨论】:

    标签: android kotlin spinner


    【解决方案1】:

    好吧,Android Studio 抱怨是因为您使用的方法清楚地表明它正在使用createFromResource,它将从Resource 加载数据。

    所以,为了让您Resource加载数据。你可以用这个

    val adapter: ArrayAdapter<String> = ArrayAdapter<String>(
         this,
         android.R.layout.simple_spinner_item, camOptions
    )
    

    【讨论】:

      猜你喜欢
      • 2016-11-24
      • 1970-01-01
      • 2017-02-02
      • 1970-01-01
      • 2013-09-10
      • 1970-01-01
      • 2012-08-20
      • 1970-01-01
      相关资源
      最近更新 更多