Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
180 views
in Technique[技术] by (71.8m points)

android - Unable to Get Images to Display in Recycler View- Text is Sucessfully Displayed

Please see the following issue:

  • All User Profile Images are not successfully displaying in the RecyclerView.
  • Text view is successfully displaying in the RecyclerView.
  • I looked up other similar issues online, but have not been able to find a solution.
  • I have updated my google play services, and my Firebase storage dependencies.
  • I am able to successfully pull the current user profile image in another activity.
  • I am getting the following 404 error message below:
**Adapter**
public class FindFriendsAdapter extends RecyclerView.Adapter<FindFriendsAdapter.FindFriendsViewHolder>

{
    private Context context;
    private List<FindFriendModel> findFriendModelList;





////This is a constructor and is a must have for recyclerviews/////
    public FindFriendsAdapter(Context context, List<FindFriendModel> findFriendModelList) {
        this.context = context;
        this.findFriendModelList = findFriendModelList;
    }

////This is a constructor and is a must have for recyclerviews/////





    @NonNull
    @Override
    public FindFriendsAdapter.FindFriendsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.find_friends_layout, parent, false);
        return new FindFriendsViewHolder(view); ///// layout converts our xml layout file to a programmable file some kind of way.
    }



    @Override
    public void onBindViewHolder(@NonNull FindFriendsAdapter.FindFriendsViewHolder holder, int position) {
        final FindFriendModel friendModel = findFriendModelList.get(position);

        holder.text_view_full_name.setText(friendModel.getFull_name());
        StorageReference fileref = FirebaseStorage.getInstance().getReference().child(Constants.IMAGES_FOLDER +"/" + friendModel.getProfileimage());
        fileref.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
            @Override
            public void onSuccess(Uri uri) {
                Glide.with(context)
                        .load(uri)
                        .placeholder(R.drawable.small_grey_circle)
                        .error(R.drawable.small_grey_circle)
                        .into(holder.imageView_profile);

            }
        });
    }




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


    public class FindFriendsViewHolder extends RecyclerView.ViewHolder{
        private CircleImageView imageView_profile;
        private TextView text_view_full_name;
        private ImageButton button_request, button_cancel_request;



        public FindFriendsViewHolder(@NonNull View itemView) {
            super(itemView);
            imageView_profile = itemView.findViewById(R.id.find_friends_profile_picture);
            text_view_full_name = itemView.findViewById(R.id.find_friends_user_full_name);
            button_request = itemView.findViewById(R.id.button_send_requests);
            button_cancel_request = itemView.findViewById(R.id.button_cancel_requests);



        }
    }
}
**Model Class**
public class FindFriendModel
{
    private String full_name;
    private String profileimage;
    private String userID;
    private boolean requestSent;

    public FindFriendModel(String full_name, String profileimage, String userID, boolean requestSent) {
        this.full_name= full_name;
        this.profileimage = profileimage;
        this.userID = userID;
        this.requestSent = requestSent;
    }

    public FindFriendModel() {}

    public String getFull_name() {
        return full_name;
    }

    public void setFull_name(String full_name) {
        this.full_name = full_name;
    }

    public String getProfileimage() {
        return profileimage;
    }

    public void setProfileimage(String profileimage) {
        this.profileimage = profileimage;
    }

    public String getUserID() {
        return userID;
    }

    public void setUserID(String userID) {
        this.userID = userID;
    }

    public boolean isRequestSent() {
        return requestSent;
    }

    public void setRequestSent(boolean requestSent) {
        this.requestSent = requestSent;
    }
}
**Fragment Java Class**
public class FindFriendsFragment extends Fragment {

    private RecyclerView recycler_view_find_friends;
    private FindFriendsAdapter findFriendsAdapter;
    private List<FindFriendModel> findFriendModelList;
    private TextView text_view_empty_Friends_List;
    private DatabaseReference databaseReference;
    private FirebaseUser currentUser;





    public FindFriendsFragment() {
        // Required empty public constructor
    }




    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_find_friends, container, false);
    }



    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);



        recycler_view_find_friends = view.findViewById(R.id.recycler_view_find_friends);
        text_view_empty_Friends_List = view.findViewById(R.id.text_view_empty_find_friends);

        recycler_view_find_friends.setLayoutManager(new LinearLayoutManager(getActivity()));

        findFriendModelList = new ArrayList<>();
        findFriendsAdapter = new FindFriendsAdapter(getActivity(), findFriendModelList);

        recycler_view_find_friends.setAdapter(findFriendsAdapter);

        databaseReference = FirebaseDatabase.getInstance().getReference().child("Users");

        currentUser = FirebaseAuth.getInstance().getCurrentUser();

        text_view_empty_Friends_List.setVisibility(View.VISIBLE);

        Query query = databaseReference.orderByChild("full_name");
        query.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                findFriendModelList.clear();
                for (final DataSnapshot ds : dataSnapshot.getChildren())
                {
                    final String userID = ds.getKey();
                    if (userID.equals(currentUser.getUid()))
                        return;

                    if (ds.child("full_name").getValue()!=null)
                    {
                        String fullName = ds.child("full_name").getValue().toString();
                        String profileImage = ds.child("profileimage").getValue().toString();


                        findFriendModelList.add(new FindFriendModel(fullName, profileImage, userID, false));
                        findFriendsAdapter.notifyDataSetChanged();

                        text_view_empty_Friends_List.setVisibility(View.GONE);
                    }
                }

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
                Toast.makeText(getContext(),"Failed to fetch friends", Toast.LENGTH_SHORT).show();


            }
        });



    }
}
````

enter image description here

enter image description here

question from:https://stackoverflow.com/questions/65875440/unable-to-get-images-to-display-in-recycler-view-text-is-sucessfully-displayed

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

ds.child("full_name").getValue()!=null should be replaced by

Objects.equals(ds.child("full_name"), null)

It worked for me when I had the same error, maybe it will help you as well !


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...