Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ExposedDropdownMenu中除字符串以外的其他对象_Android_Kotlin_Material Design - Fatal编程技术网

Android ExposedDropdownMenu中除字符串以外的其他对象

Android ExposedDropdownMenu中除字符串以外的其他对象,android,kotlin,material-design,Android,Kotlin,Material Design,我想使用MaterialDesign文档中指定的AutoCompleteTextView(以及TextInputLayout)作为一个公开的下拉菜单。可以使用自定义对象吗?因此,我可以使用类似于getSelectedItem MD文档: 可以使用自定义对象吗 是的,你可以 假设您正在创建用户的公开下拉菜单: data class User(val id: String, val name: String) { override fun toString(): String {

我想使用MaterialDesign文档中指定的
AutoCompleteTextView
(以及
TextInputLayout
)作为一个公开的下拉菜单。可以使用自定义对象吗?因此,我可以使用类似于
getSelectedItem

MD文档:

可以使用自定义对象吗

是的,你可以

假设您正在创建用户的公开下拉菜单:

data class User(val id: String, val name: String) {

    override fun toString(): String {
        return name
    }
}
创建列表项布局:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ellipsize="end"
    android:maxLines="1"
    android:padding="16dp"
    android:textAppearance="?attr/textAppearanceSubtitle1" />

创建适配器:

val adapter = ArrayAdapter<User>(context, R.layout.list_item_user, emptyList())

autoCompleteTextView.setAdapter(arrayAdapter)
autoCompleteTextView.setOnItemClickListener { _, _, position, _ ->
    val selectedTeam: User? = arrayAdapter.getItem(position)
}
val adapter=ArrayAdapter(上下文,R.layout.list\u item\u用户,emptyList())
autoCompleteTextView.setAdapter(arrayAdapter)
autoCompleteTextView.setOnItemClickListener{{},位置,{->
val selectedTeam:User?=arrayAdapter.getItem(位置)
}
就这样。快乐编码!:)