मैं एक अजीब त्रुटि का सामना कर रहा हूं जहां recyclerview केवल एक आइटम दिखा रहा है। नीचे मेरे recyclerview एडाप्टर के लिए कोड है:
public class ChatAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
List<chat> chats;
String username;
final int My=0,Their=1;
public ChatAdapter(List<chat> chats) {
this.chats = chats;
this.username = PushApp.getApp().getSPF().getStringData(Constants.ANAME);
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
RecyclerView.ViewHolder viewHolder;
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
switch (viewType) {
case My:
View v1 = inflater.inflate(R.layout.my_chat_child, parent, false);
viewHolder = new MyChatHolder(v1);
break;
case Their:
View v2 = inflater.inflate(R.layout.their_chat_child, parent, false);
viewHolder = new TheirMessageHolder(v2);
break;
default:
View v = inflater.inflate(R.layout.my_chat_child, parent, false);
viewHolder = new MyChatHolder(v);
break;
}
return viewHolder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
switch (holder.getItemViewType()) {
case My:
MyChatHolder myChatHolder = (MyChatHolder) holder;
myChatHolder.setMyMessage(chats.get(position).getMessage());
break;
case Their:
TheirMessageHolder theirMessageHolder = (TheirMessageHolder) holder;
theirMessageHolder.setTheirChat(chats.get(position).getFrom(), chats.get(position).getMessage());
break;
}
}
@Override
public int getItemViewType(int position) {
if(username.equalsIgnoreCase(chats.get(position).getFrom()))
return My;
return Their;
}
@Override
public int getItemCount() {
return chats.size();
}}
मैंने पहले से ही इस कोड को अन्य ऐप और इसके पूरी तरह से काम करने में उपयोग किया है। मैंने चैट डेटा की जाँच की है, जो सही भी है।
यहाँ git रेपो लेआउट फ़ाइलों के लिए लिंक है: लेआउट फाइलें
wrap_content
के बजाय match_parent
अपने लेआउट में ऊंचाई और चौड़ाई के लिए github.com/revic1993/androidchat/blob/master/app/src/main/res/... github.com/revic1993/androidchat/blob/master/app/src/main / रेस /…