[英]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.