android - 更新 RecyclerView 中的选定进度条
问题描述
我有一个自定义适配器,其中包含一些TextViews
和ProgressBars
. 当用户单击每一行时,我想显示ProgressBar
所选行的值并更新值。这是我的适配器:
public class MyViewHolder extends RecyclerView.ViewHolder implements View.OnLongClickListener {
public TextView from, subject;
public ProgressBar progressBar;
public MyViewHolder(View view) {
super(view);
from = (TextView) view.findViewById(R.id.from);
subject = (TextView) view.findViewById(R.id.txt_primary);
progressBar = (ProgressBar) view.findViewById(R.id.progressBar);
view.setOnLongClickListener(this);
}
}
这是我在 MainActivity 中的点击事件
@Override
public void onMessageRowClicked(int position) {
if (mAdapter.getSelectedItemCount() > 0) {
enableActionMode(position);
} else {
message = messages.get(position);
message.setRead(true);
messages.set(position, message);
mAdapter.notifyDataSetChanged();
downloadFile(message.getFrom(), getBaseUrl() + message.getLink());
}
}
这是我的下载文件
private void downloadFile(final String filename, final String path){
int downloadId = PRDownloader.download(path, dPath, mylFileName)
.build()
.setOnProgressListener(new OnProgressListener() {
@Override
public void onProgress(Progress progress) {
}
})
.start(new OnDownloadListener() {
@Override
public void onDownloadComplete() {
}
}
@Override
public void onError(Error error) {
}
});
}
}).execute(path);
}
}
我是初学者,我不知道该怎么做。
解决方案
使用它在 onMessageRowClicked() 方法中显示 ProgressBar 的值
progressBar.setProgress(value);//value will be of Integer type
这样,
.setOnProgressListener(new OnProgressListener() {
@Override
public void onProgress(Progress progress) {
long progressPercent = progress.currentBytes * 100 / progress.totalBytes;
progressBar.setProgress((int) progressPercent);
progressBar.setIndeterminate(false);
}
})
推荐阅读
- javascript - 你如何为 reactjs 中的元素分配新的属性
- ios - 手动滚动时删除 UITableView 行时的跳跃效果
- amazon-web-services - 从 Airflow 任务提交的 AWS EMR Apache Spark 应用程序的凭证存储在哪里
- javascript - 范围模型未更新
- c# - C# 总是得到空的 Cookie
- r - 如何在 R 中序列化或转储变量?或者如何找到这个答案
- xslt-2.0 - 十进制数减法
- dart - 如何更改 AppBar 的阴影颜色?
- recaptcha - 这个错误有什么解决办法:无效的类型键
- javascript - 我应该在每个类方法中创建一个新的 Promise 吗?