Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.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 为什么我能';t在recyclerview适配器中设置多行_Android_Android Studio_Android Recyclerview - Fatal编程技术网

Android 为什么我能';t在recyclerview适配器中设置多行

Android 为什么我能';t在recyclerview适配器中设置多行,android,android-studio,android-recyclerview,Android,Android Studio,Android Recyclerview,我想在适配器中设置多行,但这不起作用,我不知道为什么 聊天适配器 公共类ChatAdapter扩展了RecyclerView.Adapter{ 语境; 列出模型; 公共聊天适配器(上下文、列表聊天模型){ this.context=上下文; this.chatModels=chatModels; } @非空 @凌驾 public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup ViewGroup,int i){ Chat

我想在适配器中设置多行,但这不起作用,我不知道为什么

聊天适配器

公共类ChatAdapter扩展了RecyclerView.Adapter{
语境;
列出模型;
公共聊天适配器(上下文、列表聊天模型){
this.context=上下文;
this.chatModels=chatModels;
}
@非空
@凌驾
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup ViewGroup,int i){
ChatModel ChatModel=chatModels.get(i);
if(chatModel.me.equals(“yes”)){
返回新的黑色消息(LayoutInflater.from(viewGroup.getContext())。充气(R.layout.row_Black,viewGroup,false));
}else if(chatModel.me.equals(“no”)){
返回新的黄色消息(LayoutInflater.from(viewGroup.getContext())。充气(R.layout.row_黄色,viewGroup,false));
}
返回null;
}
@凌驾
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder ViewHolder,int i){
ChatModel ChatModel=chatModels.get(i);
if(chatModel.me.equals(“yes”)){
黑色消息黑色消息=(黑色消息)视图持有者;
黑色消息.text\u title.setText(chatModel.question);
}else if(chatModel.me.equals(“no”)){
黄色消息黄色消息=(黄色消息)视图持有者;
黄色消息.text\u title.setText(chatModel.answers);
}
}
@凌驾
public int getItemCount(){
返回chatModels.size();
}
class Black_消息扩展了RecyclerView.ViewHolder{
@BindView(R.id.relative_布局)
相对布局;
@BindView(R.id.text\u标题)
文本视图字体文本标题;
公共黑色消息(@NonNull View itemView){
超级(项目视图);
ButterKnife.bind(这个,itemView);
}
}
类黄色\u消息扩展了RecyclerView.ViewHolder{
@BindView(R.id.relative_布局)
相对布局;
@BindView(R.id.text\u标题)
文本视图字体文本标题;
公共黄色消息(@NonNull View itemView){
超级(项目视图);
ButterKnife.bind(这个,itemView);
}
}
}
我希望您能告诉我错误在哪里我找到了解决方案

public class ChatAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

    Context context;
    List<ChatModel> chatModels;

    public ChatAdapter(Context context, List<ChatModel> chatModels) {
        this.context = context;
        this.chatModels = chatModels;
    }

    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        if (i == 1) {
            return new Black_Message(LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.row_black, viewGroup, false));
        } else if (i == 2) {
            return new Yellow_Message(LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.row_yellow, viewGroup, false));
        }
        return null;
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
        ChatModel chatModel = chatModels.get(i);
        if (chatModel.me.equals("yes")) {
            Black_Message black_message = (Black_Message) viewHolder;
            black_message.text_title.setText(chatModel.question);
        } else if (chatModel.me.equals("no")) {
            Yellow_Message yellow_message = (Yellow_Message) viewHolder;
            yellow_message.text_title.setText(chatModel.answers);
        }
    }

    @Override
    public int getItemCount() {
        return chatModels.size();
    }

    @Override
    public int getItemViewType(int position) {
        ChatModel chatModel = chatModels.get(position);
        if (chatModel.me.equals("yes")) {
            return 1;
        } else if (chatModel.me.equals("no")) {
            return 2;
        }else {
            return super.getItemViewType(position);
        }
    }

    class Black_Message extends RecyclerView.ViewHolder {
        @BindView(R.id.relative_layout)
        RelativeLayout relative_layout;
        @BindView(R.id.text_title)
        TextViewFont text_title;

        public Black_Message(@NonNull View itemView) {
            super(itemView);
            ButterKnife.bind(this, itemView);
        }
    }

    class Yellow_Message extends RecyclerView.ViewHolder {
        @BindView(R.id.relative_layout)
        RelativeLayout relative_layout;
        @BindView(R.id.text_title)
        TextViewFont text_title;

        public Yellow_Message(@NonNull View itemView) {
            super(itemView);
            ButterKnife.bind(this, itemView);
        }
    }

}
公共类ChatAdapter扩展了RecyclerView.Adapter{
语境;
列出模型;
公共聊天适配器(上下文、列表聊天模型){
this.context=上下文;
this.chatModels=chatModels;
}
@非空
@凌驾
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup ViewGroup,int i){
如果(i==1){
返回新的黑色消息(LayoutInflater.from(viewGroup.getContext())。充气(R.layout.row_Black,viewGroup,false));
}else如果(i==2){
返回新的黄色消息(LayoutInflater.from(viewGroup.getContext())。充气(R.layout.row_黄色,viewGroup,false));
}
返回null;
}
@凌驾
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder ViewHolder,int i){
ChatModel ChatModel=chatModels.get(i);
if(chatModel.me.equals(“yes”)){
黑色消息黑色消息=(黑色消息)视图持有者;
黑色消息.text\u title.setText(chatModel.question);
}else if(chatModel.me.equals(“no”)){
黄色消息黄色消息=(黄色消息)视图持有者;
黄色消息.text\u title.setText(chatModel.answers);
}
}
@凌驾
public int getItemCount(){
返回chatModels.size();
}
@凌驾
public int getItemViewType(int位置){
ChatModel ChatModel=chatModels.get(位置);
if(chatModel.me.equals(“yes”)){
返回1;
}else if(chatModel.me.equals(“no”)){
返回2;
}否则{
返回super.getItemViewType(位置);
}
}
class Black_消息扩展了RecyclerView.ViewHolder{
@BindView(R.id.relative_布局)
相对布局;
@BindView(R.id.text\u标题)
文本视图字体文本标题;
公共黑色消息(@NonNull View itemView){
超级(项目视图);
ButterKnife.bind(这个,itemView);
}
}
类黄色\u消息扩展了RecyclerView.ViewHolder{
@BindView(R.id.relative_布局)
相对布局;
@BindView(R.id.text\u标题)
文本视图字体文本标题;
公共黄色消息(@NonNull View itemView){
超级(项目视图);
ButterKnife.bind(这个,itemView);
}
}
}

您是否检查了传递给构造函数的模型?你能在构造器中检查它的大小以确保你通过了正确的东西吗?@MeHdi没有任何问题你检查过RecyclerView布局的宽度和高度了吗?它是否真的在屏幕上绘制?你可以通过打开开发者选项中的“显示布局边界”来检查它(如果你不知道它在哪里,只需谷歌一下),到底是什么问题?显示您在日志上看到的内容。有例外吗?还是别的什么错误?我找到了解决方案谢谢
public class ChatAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

    Context context;
    List<ChatModel> chatModels;

    public ChatAdapter(Context context, List<ChatModel> chatModels) {
        this.context = context;
        this.chatModels = chatModels;
    }

    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        if (i == 1) {
            return new Black_Message(LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.row_black, viewGroup, false));
        } else if (i == 2) {
            return new Yellow_Message(LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.row_yellow, viewGroup, false));
        }
        return null;
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
        ChatModel chatModel = chatModels.get(i);
        if (chatModel.me.equals("yes")) {
            Black_Message black_message = (Black_Message) viewHolder;
            black_message.text_title.setText(chatModel.question);
        } else if (chatModel.me.equals("no")) {
            Yellow_Message yellow_message = (Yellow_Message) viewHolder;
            yellow_message.text_title.setText(chatModel.answers);
        }
    }

    @Override
    public int getItemCount() {
        return chatModels.size();
    }

    @Override
    public int getItemViewType(int position) {
        ChatModel chatModel = chatModels.get(position);
        if (chatModel.me.equals("yes")) {
            return 1;
        } else if (chatModel.me.equals("no")) {
            return 2;
        }else {
            return super.getItemViewType(position);
        }
    }

    class Black_Message extends RecyclerView.ViewHolder {
        @BindView(R.id.relative_layout)
        RelativeLayout relative_layout;
        @BindView(R.id.text_title)
        TextViewFont text_title;

        public Black_Message(@NonNull View itemView) {
            super(itemView);
            ButterKnife.bind(this, itemView);
        }
    }

    class Yellow_Message extends RecyclerView.ViewHolder {
        @BindView(R.id.relative_layout)
        RelativeLayout relative_layout;
        @BindView(R.id.text_title)
        TextViewFont text_title;

        public Yellow_Message(@NonNull View itemView) {
            super(itemView);
            ButterKnife.bind(this, itemView);
        }
    }

}