Я получил пять карт по вызову Firebase и добавил в мой адаптер.Мое приложение представляет собой приложение в стиле Tinder, в котором пользователь проводит пальцем для перехода на другую карту, но у него есть кнопка внутри родительского фрагмента, а не адаптера, где они могут получить информацию из этого адаптера элемента и передать ее в другое действие, где пользователь можетотредактируйте его.
Я получаю информацию о карте через интерфейс обратного вызова, добавленный к моему адаптеру, но вместо того, чтобы отображать элемент в данный момент на экране, он проходит до середины списка и дает мне третий элемент тами я не знаю, почему это происходит.
inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view)
{
fun bind(position: Int) {
val card = cardList[position]
callback?.onClickCallback(card, itemView, position)
}
}
interface AdapterCallback {
fun onClickCallback(itemModel: Card, itemView: View, position: Int)
}
А это мой фрагмент:
class CardDetailFragment : Fragment(), CardStackListener, CardStackAdapter.AdapterCallback {
override fun onClickCallback(itemModel: Card, itemView: View, position: Int) {
stringTest = itemModel.cardQuestion
this.itemModel = itemModel
this.itemView = itemView
this.position = position
}
override fun onCardDisappeared(view: View?, position: Int) {}
override fun onCardDragging(direction: Direction?, ratio: Float) {}
override fun onCardSwiped(direction: Direction?) {}
override fun onCardCanceled() {}
override fun onCardAppeared(view: View?, position: Int) {}
override fun onCardRewound() {}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
setString = arguments?.getString("setString")
val collectionType = object : TypeToken<List<Card>>() {}.type
cardList = Gson().fromJson(setString, collectionType) as List<Card>
for (i in cardList!!) {
adapter.addItem(i, this)
}
setUpCardStackView()
}
}
Слушатель кнопки
myButton -> activity?.toast(stringTest ?: "") // Always giving me the third card instead of first one which is what is showing on the screen
PS:В целом, мне нужно получать информацию, полученную от адаптера, каждый раз, когда карта проходит.Если я добавлю в прослушиватель кликов, это сработает, если я выполню щелчок до перехода, что не является нормальным потоком.Однако, если я добавлю его за пределами слушателя, я получу сообщение о проблеме, опубликованное в этой теме, поэтому теперь немного растерялся.
Спасибо.