Android 如何从Kotlin中的MultiSelectSpinner获取逗号分隔的项目ID
我在我的Kotlin项目中使用来自Github的此控件。我不知道如何从该控件获取选定项的Android 如何从Kotlin中的MultiSelectSpinner获取逗号分隔的项目ID,android,kotlin,spinner,android-spinner,multi-select,Android,Kotlin,Spinner,Android Spinner,Multi Select,我在我的Kotlin项目中使用来自Github的此控件。我不知道如何从该控件获取选定项的Id,我需要将所有选定项的逗号分隔的Id字符串设置为tv\u engineer\u IdTextView控件 布局代码: <TextView android:id="@+id/tv_engineer_ids" android:layout_width="wrap_content" android:layout
Id
,我需要将所有选定项的逗号分隔的Id字符串设置为tv\u engineer\u Id
TextView控件
布局代码:
<TextView
android:id="@+id/tv_engineer_ids"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<io.apptik.widget.multiselectspinner.MultiSelectSpinner
android:id="@+id/spin_engineer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="15dp"
/>
val engineers: ArrayList<String> = ArrayList<String>();
addJobResponse.engineerList!!.forEach {
engineers.add(it.name!!);
}
spin_engineer.setItems(engineers)
.setListener<BaseMultiSelectSpinner>(object: BaseMultiSelectSpinner.MultiSpinnerListener {
override fun onItemsSelected(selected:BooleanArray) {
//Toast.makeText(context, selected.toString(), Toast.LENGTH_LONG).show()
// Need to set comma separated IDs here
selected.forEach {
Toast.makeText(context, it.toString(), Toast.LENGTH_LONG).show()
}
}
})
data class Engineer (
@SerializedName("Id")
@Expose
var id: Long? = null,
@SerializedName("Name")
@Expose
var name: String? = null)
首先,不要在开始时使用
forEach
并将工程师逐个添加到新的ArrayList
,您可以使用:
最后,对于逗号分隔的列表:
谢谢,触觉回答。
val engineers: List<String> = engineerList.map { it.name!! }
val selectedEngineers: List<Engineer> = engineerList
.filterIndexed { index, engineer -> selected[index] }
println(selectedEngineers.joinToString { it.id!!.toString() })