Обновить выбранный индикатор в RecyclerView - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть специальный адаптер, который содержит 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);
        }
    }

Я новичок и не знаю, что делать.

1 Ответ

0 голосов
/ 10 сентября 2018

Используйте это, чтобы показать значение в ProgressBar в вашем методе onMessageRowClicked ()

 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);
                        }
                    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...