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

时间:2018-08-01 17:27:38

标签: android firebase recycler-adapter

好的,我可以像发送任何简单的聊天应用一样发送短信。现在我也想发送图像(之后可能是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);
    }
}

}

现在如果我也有图像布局怎么办?有没有办法组合布局?还是要制作不同的布局文件以及不同的模型类?我应该如何进行呢?我不要任何代码。只是这种情况的前进之路。

1 个答案:

答案 0 :(得分:1)

您可以基于viewType拥有多种类型的视图持有人。您必须重写getViewType并返回视图类型int,对于视频说1,对于消息说2(您需要根据您应用中的数据构建该逻辑),然后在onCreateViewHolder方法中使用viewType varidable来确定所需的视图持有者显示