簡體   English   中英

從字符串列表填充 Android 中的 Spinner

[英]Populate Spinner in Android from List of Strings

(如果您認為這個問題是重復的,請檢查其他答案是否都是 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 Studio 抱怨是因為您使用的方法明確指出它正在使用createFromResource它將從Resource加載數據。

因此,為了讓您加載不是來自Resource數據。 你可以用這個

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM