【发布时间】:2016-04-16 16:21:46
【问题描述】:
我正在开发一个 android 项目,其中将有一个由项目(行)组成的 Recyclerview。在运行时,只要将 item(row) 添加到 Recyclerview,它就会开始上传到服务器并更新该 item(row) 中的进度条。这里的每个项目都是一个文件。只要将项目添加到屏幕大小,一切都会很好。每当项目超过屏幕限制时,我都需要滚动。滚动时,进度条在不同项目上更新。有时在两个或多个项目上。谷歌搜索了很多之后,我明白这是因为 Recyclerview 重用了已经创建的视图。
这是我的recyclerview的适配器代码:
public class MyViewHolder extends RecyclerView.ViewHolder {
private TextView filename;
private ProgressBar file_progressbar;
public MyViewHolder(View v) {
super(v);
filename = (TextView) v.findViewById(R.id.filename);
file_progressbar = (ProgressBar) v.findViewById(R.id.file_progressbar);
}
}
public void onBindViewHolder(final MyViewHolder holder, final int position) {
final String fname = fDataset.get((fDataset.size() - 1) - position);
File f = new File(fname);
holder.filename.setText(f.getName());
if(internetchek.isNetworkAvailable(this.ctx))
{
holder.file_progressbar.setVisibility(View.VISIBLE);
upload up = new upload(this.ctx,fname,holder.file_progressbar,"uploadstart");
up.execute();
}
else {
Toast.makeText(this.ctx, "Offline", Toast.LENGTH_LONG).show();
}
}
我已将 holder.file_progressbar 传递给上传类。以便进度条在 Upload 类中更新。我不知道如何解决这个问题。提前致谢
【问题讨论】:
标签: android android-recyclerview android-progressbar