Android 如何使用具有不同xml布局的Firebase发送图像和文本消息?
好吧,我可以像任何简单的聊天应用程序一样发送短信。现在我也想发送图片(之后可能是pdf等附件)。因此,文字信息和图像的布局将有所不同 目前,我有一个适配器类,数据在recyclerView中接收。下面是我的适配器类:Android 如何使用具有不同xml布局的Firebase发送图像和文本消息?,android,firebase,android-recyclerview,Android,Firebase,Android Recyclerview,好吧,我可以像任何简单的聊天应用程序一样发送短信。现在我也想发送图片(之后可能是pdf等附件)。因此,文字信息和图像的布局将有所不同 目前,我有一个适配器类,数据在recyclerView中接收。下面是我的适配器类: public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.ViewHolder> { public List<TextMessage> messageList; publ
public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.ViewHolder> {
public List<TextMessage> messageList;
public Context context;
public MessageAdapter(List<TextMessage> messageList){
this.messageList = messageList;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_text_message,parent,false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.Text.setText(messageList.get(position).getMessage());
}
@Override
public int getItemCount() {
return messageList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
View mView;
public TextView Text;
public ViewHolder(View itemView) {
super(itemView);
mView = itemView;
Text = mView.findViewById(R.id.textView_message_text);
}
}
公共类MessageAdapter扩展了RecyclerView.Adapter{
公共列表消息列表;
公共语境;
公共消息适配器(列表消息列表){
this.messageList=messageList;
}
@凌驾
public ViewHolder onCreateViewHolder(视图组父级,int-viewType){
查看视图=LayoutInflater.from(parent.getContext()).flate(R.layout.item\u text\u消息,parent,false);
返回新的ViewHolder(视图);
}
@凌驾
公共无效onBindViewHolder(ViewHolder,int位置){
holder.Text.setText(messageList.get(position.getMessage());
}
@凌驾
public int getItemCount(){
返回messageList.size();
}
公共类ViewHolder扩展了RecyclerView.ViewHolder{
视图视图;
公共文本查看文本;
公共视图持有者(视图项视图){
超级(项目视图);
mView=项目视图;
Text=mView.findviewbyd(R.id.textView\u message\u Text);
}
}
}
现在,如果我也有图像布局呢?有没有一种方法可以组合布局?或者使用不同的模型类创建不同的布局文件?我应该如何进行这项工作?我不想要任何代码。这正是解决这一问题的途径 基于视图类型,可以有多种类型的视图保持架。您必须覆盖getViewType并返回view type int,例如视频为1,消息为2(您需要根据应用程序中的数据构建该逻辑),然后在使用viewType Variable的onCreateViewHolder方法中,您可以决定要显示的视图持有人您可以根据视图类型拥有多种类型的视图持有人。您必须覆盖getViewType并返回view type int,例如视频为1,消息为2(您需要根据应用程序中的数据构建该逻辑),然后在使用viewType Variable的onCreateViewHolder方法中,您可以决定要显示的视图持有者愉悦bruh:)愉悦bruh:)