android - Android中Holder的回收视图滚动问题
问题描述
我创建了一个回收视图适配器,在其中我通过单击行来填充视图持有者的对象。因此,每当我点击回收视图行时,我总是拥有最新的视图持有者对象。
问题是每当我滚动回收视图调用绑定视图持有者并且我的视图持有者的值更改运行时间而不点击任何行
我已经尝试了很多方法来保存我当前的点击行对象,但我没有得到那个enter code here
如果有任何机构遇到此问题,请提供帮助
我在可运行以下执行,当时我得到不同的持有人值
private class SeekBarUpdaterRight implements Runnable {
@Override
public void run() {
if (null != rightMusicPlayerHolder) {
if (player != null) {
int curVolume = player.getCurrentPosition();
rightMusicPlayerHolder.seekMusicRight.setProgress(curVolume);
// int currentHour = curVolume / HOUR;
int currentMint = (curVolume % HOUR) / MINUTE;
int currentSec = (curVolume % MINUTE) / SECOND;
rightMusicPlayerHolder.txtDurationStartRight.setText(String.format("%02d:%02d", currentMint, currentSec));
rightMusicPlayerHolder.seekMusicRight.postDelayed(this, 100);
Log.print("==========rightMusicPlayerHolder=========" + rightMusicPlayerHolder.getAdapterPosition());
}
}
}
}
提前致谢..
解决方案
OnBindViewHolder()
每当某些事情导致视图发生变化时被调用,例如滚动、键盘打开/关闭、按下主页或最近按钮等。为您的 ViewHolder 类创建一个全局变量并在您的onClick()
. 例如:
ViewHolder clickedViewHolder;
private void setClickedViewHolder(ViewHolder clickedViewHolder) {
this.clickedViewHolder = clickedViewHolder;
}
private ViewHolder getClickedViewHolder() {
return clickedViewHolder;
}
@Override
public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) {
holder.rowView.setTag(holder);
holder.rowView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setCurrentViewHolder((MyAdapter.ViewHolder) v.getTag());
}
});
ViewHolder currClickedViewHolder = getClickedViewHolder(); // this is the last viewHolder clicked on.
}
用那个 ViewHolder 做任何你想做的事。
推荐阅读
- django-channels - 使用 pytest 进行 Django 通道 ProtocolTypeRouter 单元测试
- ssis - 在所有集群节点上将 SSIS 作为独立服务安装
- php - 将元素添加到关联数组会引发错误 - php
- c# - 如何将UI元素动态绑定到不同的对象WPF c#
- python - Django 绝对网址
- postgresql - 使用多个标准对分区进行排序
- eclipse - Oomph 安装配置文件中的 Lombok 项目
- python - 我正在 juypter 上的 python 中使用 Keras 包
- google-apps-script - 一天服务调用次数过多:gmail。GmailApp.search() 是否已用完配额?或者是什么?
- scala - 如何获取可通过隐式转换获得的成员的“符号”?