kotlin - 如何使用自定义对象按值获取 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()
解决方案
只需将您的User
类声明为数据类:
data class User(var name: String?, var mail: String?)
它将生成equals()
和toString()
方法。所以你可以在对象比较中使用它。
推荐阅读
- mysql - 无法从另一个表中不存在的表中查询名称
- big-o - 对数方程中多项式的Big-O?
- python - sympy中和的指数乘以指数
- c# - JSON包含空对象时出现RestSharp错误
- c# - 联系表格不起作用,“值不能为空。参数名称:地址”MVC5
- jsf - PrimeFacess 只读属性有时会被禁用
- c# - 如何让机器人对 discord.net 中自己的消息做出反应?
- google-sheets - Google表格,需要根据第二张表格上的两列编辑一列
- java - 在java中打开附加到eclipse项目的文件
- c# - 从另一个类调用的文件系统观察程序进程未触发事件 c#