首页 > 解决方案 > 如何使用自定义对象按值获取 kotlin getposition spinner?

问题描述

我正在尝试使用自定义对象制作微调器。当我从微调器中获取位置时,我得到结果-1。我不知道原因

这是我的代码:

模型

class User(var name: String?, var mail: String?) {

    override fun toString(): String {
        return name.toString()
    }
}

活动

val userList = ArrayList<User>()
val user1 = User("Jim","jim@gmail.com")
userList.add(user1)
val user2 = User("John","john@gmail.com")
userList.add(user2)
val user3 = User("peki", "pek@gmail.com")
userList.add(user3)


val adapter = ArrayAdapter<User>(this,
    android.R.layout.simple_spinner_item, userList
)
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
spinner.setAdapter(adapter)

val ambilPosisi : Int =  adapter.getPosition(User("peki","pek@gmail.com"))
Toast.makeText(this, (ambilPosisi).toString(), Toast.LENGTH_LONG).show()

标签: kotlinspinner

解决方案


只需将您的User类声明为数据类

data class User(var name: String?, var mail: String?)

它将生成equals()toString()方法。所以你可以在对象比较中使用它。


推荐阅读