【发布时间】:2021-02-02 23:11:35
【问题描述】:
我有一个聊天活动,并试图为发送者和接收者添加不同的布局。到目前为止,我可以检索 firebase 实时数据库的数据,但发送者和接收者具有相同的布局,我已经创建了布局第二个布局并尝试使用 viewType 但无法弄清楚如何将当前用户分配给 cretin 布局,请帮助:(
聊天活动
if (!employee)
{
FirebaseRecyclerOptions options = new FirebaseRecyclerOptions.Builder<ChatMessageModel>()
.setQuery(FirebaseDatabase.getInstance().getReference().child("client_emp_messages")
.child(formattedDate+uid), ChatMessageModel.class)
.build();
}
else
{
// employee
Bundle bundle = getIntent().getExtras();
String d = bundle.getString("path_to_client_realtime_db");
options = new FirebaseRecyclerOptions.Builder<ChatMessageModel>()
.setQuery(FirebaseDatabase.getInstance().getReference().child("client_emp_messages")
.child(d), ChatMessageModel.class)
.build();
}
adapter = new ChatAdapter(options);
nMessageList.setAdapter(adapter);
聊天适配器
public class ChatAdapter extends FirebaseRecyclerAdapter<ChatMessageModel, ChatAdapter.ChatViewHolder>
{
public ChatAdapter(@NonNull FirebaseRecyclerOptions<ChatMessageModel> options) {
super(options);
}
@Override
protected void onBindViewHolder(@NonNull ChatViewHolder holder, int i, @NonNull ChatMessageModel model) {
holder.nMessage_text_view.setText(model.getMessage());
}
@NonNull
@Override
public ChatViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.message_single_layout, parent, false);
return new ChatViewHolder(view);
}
class ChatViewHolder extends RecyclerView.ViewHolder
{
TextView nMessage_text_view;
public ChatViewHolder(@NonNull View itemView) {
super(itemView);
nMessage_text_view = itemView.findViewById(R.id.message_text_view);
}
}
}
【问题讨论】:
标签: firebase-realtime-database android-recyclerview chat layout-inflater