kotlin - 是否可以让 recyclerview/listview 导航到不同的屏幕?
问题描述
因此,我看过许多 Kotlin recyclerview 教程,但是它们似乎都基于项目评论/联系人列表,当您选择它们时,它们都会将您带到同一个屏幕,尽管具有不同的查看器内容。我想知道是否可以使用独立的 recyclerview/listview 进行导航,而不是使用似乎不适合广泛目录的导航抽屉。如果是这样,那里有任何教程吗?
基本上是这样的:
解决方案
在你的adapter中,你可以在onBindViewHolder中你的RecyclerView中的每个视图上设置一个标签,在点击监听器中,你可以获取标签并根据它是哪个标签来操作。
你可以让你的 RecyclerView 适配器扩展View.onClickListener
override fun onBindViewHolder(holder: OpportunityViewHolder, position: Int) {
// Differentiate between items by having a base class that you implement for your different items
val item = getItem(position)
item.tag = when(item) {
is ThisThing -> "thisThing"
is ThatThing -> "thatThing"
is AnotherThing -> "anotherThing"
}
}
override fun onClick(v: View) {
when(v.tag) {
"thisThing" -> // do something
"thatThing" -> // something else...
}
当然,您可能希望将枚举用于标记可能性,或常量值,甚至使用类名
enum class Tag {
THIS_THING, THAT_THING...
}
companion object {
private const val THIS_THING = "THIS_THING"
...
}
// Inside classes
companion object {
val name = ThisThing::class.simpleName
...
}
推荐阅读
- c# - 从 TfvcHttpClient 调用 CreateChangesetAsync 会抛出 CheckinFailedError 进行编辑更改
- android - Jetpack Compose ActivityNotFoundException
- python - 如何提取pdf中的所有数组?
- python - 使用定义的参数python创建新列的函数
- docker-compose - 无法从使用 docker-compose 启动的容器内部访问网络
- amazon-web-services - AWS ioT:来自事物的用户连接(使用受限策略?)
- hibernate - jpa中的onetoonemapping,子表中存在外键
- elasticsearch - 使用 filebeat 记录 - 从多行 json 文件中提取 ECS 字段
- node.js - NodeJS:在调用函数之前等待创建变量
- prometheus - 格拉凡找不到普罗米修斯