Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用具有不同xml布局的Firebase发送图像和文本消息?_Android_Firebase_Android Recyclerview - Fatal编程技术网

Android 如何使用具有不同xml布局的Firebase发送图像和文本消息?

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

好吧,我可以像任何简单的聊天应用程序一样发送短信。现在我也想发送图片(之后可能是pdf等附件)。因此,文字信息和图像的布局将有所不同

目前,我有一个适配器类,数据在recyclerView中接收。下面是我的适配器类:

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:)