我有 Main3Activity 和 UsersAdapter
在 UsersAdapter 我有 clickListener
在 UsersAdapter 中单击侦听器:
open class RecyclerItemClickListener(recyclerView: RecyclerView, private val mListener: OnItemClickListener?) : RecyclerView.OnItemTouchListener {
private var mGestureDetector: GestureDetector = GestureDetector(recyclerView.context, object : GestureDetector.SimpleOnGestureListener() {
override fun onSingleTapUp(e: MotionEvent): Boolean {
return true
}
override fun onLongPress(e: MotionEvent) {}
})
interface OnItemClickListener {
fun onItemClick(view: View, position: Int)
}
override fun onInterceptTouchEvent(view: RecyclerView, e: MotionEvent): Boolean {
val childView = view.findChildViewUnder(e.x, e.y)
if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) {
mListener.onItemClick(childView, view.getChildAdapterPosition(childView))
return true
}
return false
}
override fun onTouchEvent(view: RecyclerView, motionEvent: MotionEvent) {
}
override fun onRequestDisallowInterceptTouchEvent(disallowIntercept: Boolean) {}
}
在 Main3Activity 它是这样调用的:
recyclerView.addOnItemTouchListener(
UsersAdapter.RecyclerItemClickListener(recyclerView,
object : UsersAdapter.RecyclerItemClickListener.OnItemClickListener {
override fun onItemClick(view: View, position: Int) {
Toast.makeText(this@Main3Activity, "${firstName?.text}", Toast.LENGTH_SHORT)
}
})
)
我需要的是,当我点击firstName时,会出现一个Toast,其中item-e中的文本firstName,例如,当我点击C++时,会出现一个带有c++的toast,当我点击HTML时,会出现一个HTML toast出现,但我的 Toast 没有出现。
我怎样才能做到这一点?我真的需要你的帮助。提前致谢