我有一个自定义适配器,其中包含一些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);
}
}
我是一个初学者,我不知道该怎么办。
答案 0 :(得分:3)
使用它来显示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);
}
})