RecyclerView.Adapter загрузка изображения с URL не обновляется - PullRequest
0 голосов
/ 20 ноября 2018

У меня проблема при обновлении изображения в RecylcerView.Adapter.У меня есть этот класс для моего адаптера:

public class ShowMembersAdapter extends RecyclerView.Adapter<ShowMembersAdapter.ViewHolder> {
    private ArrayList<User> users;
    private Context context;
    private ShowTeamsAdapter.OnItemClickListener mListener;

    public void setOnItemClickListener(ShowTeamsAdapter.OnItemClickListener listener) {
        mListener = listener;
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {
        private CircleImageView mImage;

        public ViewHolder(View itemView, ShowTeamsAdapter.OnItemClickListener listener) {
            super(itemView);
            mImage = itemView.findViewById(R.id.image);

            itemView.setOnClickListener(view -> {
                if (listener != null) {
                    int position = getAdapterPosition();
                    if (position != RecyclerView.NO_POSITION) {
                        listener.onItemClick(position);
                    }
                }
            });
        }
    }

    public ShowMembersAdapter(ArrayList<User> users, Context context) {
        this.users = users;
        this.context = context;
    }

    @NonNull
    @Override
    public ShowMembersAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_member_item, parent, false);
        ShowMembersAdapter.ViewHolder viewHolder = new ShowMembersAdapter.ViewHolder(v, mListener);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull ShowMembers
        String imageUrl = "MYURL" + users.get(position).getEmail() + ".jpg";
        Picasso.get().load(imageUrl).resize(200,200).error(R.mipmap.ic_team_member_no_photo).into(holder.mImage);
    }

    @Override
    public int getItemCount() {
        return users.size();
    }
}

Я заполняю этот класс из моего Fragment.Он отлично работает, когда я запускаю приложение.Однако всякий раз, когда я обновляю изображение из приложения, я думаю, что адаптер не изменится, потому что URL-адрес изображения остается прежним.У вас есть другие идеи, которые я могу сделать?Как вы думаете, мне следует позвонить еще раз в Volley, чтобы получить изображения и сохранить их для каждого пользователя, чтобы я не звонил им напрямую с Adapter?

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 20 ноября 2018

После обновления изображения вы пробовали это:

yourAdapter.notifyDataSetChanged()
...