Android 使用DownloadManager在RecyclerView中显示下载进度

Android 使用DownloadManager在RecyclerView中显示下载进度,android,android-recyclerview,android-download-manager,Android,Android Recyclerview,Android Download Manager,在myRecyclerView的任何一行中,都有一个ProgressBar和一个下载按钮。点击此按钮,即可开始下载。我想在其ProgressBar中显示任何下载的进度。有人能帮我吗 编辑: 我的下载代码: @Override public void onBindViewHolder(final DataHolder holder, final int position) { final Item item = items.get(position); holder.btnDo

在my
RecyclerView
的任何一行中,都有一个
ProgressBar
和一个下载按钮。点击此按钮,即可开始下载。我想在其
ProgressBar
中显示任何下载的进度。有人能帮我吗

编辑:

我的下载代码:

@Override
public void onBindViewHolder(final DataHolder holder, final int position) {

    final Item item = items.get(position);

    holder.btnDownload.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

                String url = item.getLink();
                DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
                request.setDescription(item.getDescription());
                request.setTitle(item.getTitle());

                request.allowScanningByMediaScanner();
                request.setNotificationVisibility(
                        DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);

                request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "file"+position+".pdf");

                manager.enqueue(request);
        }
    });

现在无法提供任何代码示例。但我可以让路

  • 首先,您需要通过任何类型的处理程序或循环计算下载文件的进度,直到下载完成

  • 在recyclerView适配器中,您可以通过
    notifyItemRangeChanged(int-positionStart,int-itemCount,Object-payload)
    更新部分视图项,它将调用
    onBindViewHolder(FeedBaseViewHolder,int-position,List-payloads)

  • 在payload中,您可以将所需的值透视图与您的需求一起传递,如启动进度操作、更新进度、停止进度


  • 希望它能帮助你。提前谢谢。

    发布一些代码,你试过什么?