yoop****
50
2021-09-24 23:23:43
2
107

안드로이드 네비게이션바 리사이클러뷰 오류


채팅방에 사람 목록을 띄우려고 네비게이션바를 만든 뒤 리사이클러뷰를 짰습니다. 그런데 화면에 나오지 않네요 ㅠㅠ 혹시 왜 그런지 아시는 분 계신가요?


class MemberRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

List<UserModel> userModel = new ArrayList();

public MemberRecyclerViewAdapter() {



String destinatonUid1 = getIntent().getStringExtra("chat-destinationUid");

FirebaseDatabase.getInstance().getReference().child("users").child(destinatonUid1).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull @NotNull DataSnapshot snapshot) {

UserModel userModels;

userModels = snapshot.getValue(UserModel.class);

userModel.add(userModels);

System.out.println(userModel.get(0).nickname);
}


@Override
public void onCancelled(@NonNull @NotNull DatabaseError error) {

}


});


}

@NonNull
@NotNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull @NotNull ViewGroup parent, int viewType) {

View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_chatroom_people,parent,false);

return new MemberViewHolder(view);


}

@Override
public void onBindViewHolder(@NonNull @NotNull RecyclerView.ViewHolder holder, int position) {

MemberViewHolder memberViewHolder = ((MemberViewHolder)holder);

System.out.println(userModel.get(0).nickname);
memberViewHolder.member_ninckname.setText(userModel.get(0).nickname);

Glide.with(holder.itemView.getContext())
.load(userModel.get(0).imageUri)
.apply(new RequestOptions().circleCrop())
.into(memberViewHolder.member_profile);

}

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

private class MemberViewHolder extends RecyclerView.ViewHolder {

public TextView member_ninckname;
public ImageView member_profile;


public MemberViewHolder(View view) {
super(view);

member_ninckname = (TextView)view.findViewById(R.id.memeber_nickname);
member_profile = (ImageView)view.findViewById(R.id.memeber_profile);


}
}


}

대화상대 부분에 상대방의 닉네임과 프로필이 뜨는 것이 목적이고, 사람은 1대1 채팅방에 상대 1명이라 position(0)이라고 했습니다.

0
  • 답변 2

  • 실크론
    448
    2021-09-25 01:11:26 작성 2021-09-25 01:24:02 수정됨

    onBindViewHolder 에서 position을 안 넣어줬어요

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, final int position) {
    UserModel item = userModel.get(position); //index에 있는 position을 가져와 item 에 담음
    holder.setItem(item); //index에 있는 data set 돼서 보여짐

    }
    public void setItem(UserModel item) {
    member_ninckname.setText(item.getMember_nickname());
    member_profile.setImageBitMap(해당정보); 대충 이런느낌으로 하시면 될꺼같아요
    }  
    setItem은
    private class MemberViewHolder extexd ~~ {
         public void setItem(~ {
        } 이런식으로 들어가개 해주시면 되요
    }
  • yoop****
    50
    2021-09-25 18:31:25

    했는데도 안됩니다..

  • 로그인을 하시면 답변을 등록할 수 있습니다.