';void android.widget.TextView.setText(java.lang.CharSequence)和#x27;在空对象引用Adapter.Messageadapter.onBindViewHolder上

';void android.widget.TextView.setText(java.lang.CharSequence)和#x27;在空对象引用Adapter.Messageadapter.onBindViewHolder上,java,android,android-studio,android-layout,android-intent,Java,Android,Android Studio,Android Layout,Android Intent,我得到: 尝试调用虚拟方法“void” 空值上的android.widget.TextView.setText(java.lang.CharSequence)“” 对象引用 此错误在崩溃开始时出现。 这是我第一次遇到这种错误 public class Messageadapter extends RecyclerView.Adapter { private static final int MSG_TYPE_LEFT=0; private static final int MS

我得到:

尝试调用虚拟方法“void” 空值上的android.widget.TextView.setText(java.lang.CharSequence)“” 对象引用

此错误在崩溃开始时出现。 这是我第一次遇到这种错误

public class Messageadapter extends RecyclerView.Adapter {

    private static final int MSG_TYPE_LEFT=0;
    private static final int MSG_TYPE_RIGHT=1;

    private Context mContext;
    private List<Chat> mChat;
    private String imageurl;

    FirebaseUser fuser;

    public Messageadapter(Context mContext, List<Chat> mChat,String imageurl) {
        this.mContext=mContext;
        this.mChat=mChat;
        this.imageurl=imageurl;
    }

    @NonNull
    @Override
    public Messageadapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        if(viewType==MSG_TYPE_RIGHT){
        View view= LayoutInflater.from(mContext).inflate(R.layout.chat_item_right,parent,false);
        return new Messageadapter.ViewHolder(view);
        }else {
            View view= LayoutInflater.from(mContext).inflate(R.layout.chat_item_left,parent,false);
            return new Messageadapter.ViewHolder(view);
        }
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
        Chat chat=mChat.get(position);
        ((ViewHolder) holder).show_message.setText(chat.getMessage());///////Error is said on this line/////////////////
        ((UserAdapter.ViewHolder) holder).profile_image.setImageResource(R.mipmap.ic_launcher);
    }

    @Override
    public int getItemCount() {
        return mChat.size();
    }
    public class ViewHolder extends RecyclerView.ViewHolder{

        public TextView show_message;
        public ImageView profile_image;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);

            show_message=itemView.findViewById(R.id.show_message);
            profile_image=itemView.findViewById(R.id.profileimage);
        }
    }

    @Override
    public int getItemViewType(int position) {
        fuser= FirebaseAuth.getInstance().getCurrentUser();
        if(mChat.get(position).getSender().equals(fuser.getUid())){
            return MSG_TYPE_RIGHT;
        }
        else {
            return MSG_TYPE_LEFT;
        }
    }
}
公共类Messageadapter扩展了RecyclerView.Adapter{ 私有静态最终int MSG_TYPE_LEFT=0; 私有静态final int MSG_TYPE_RIGHT=1; 私有上下文; 私人名单mChat; 私有字符串imageurl; FirebaseUser定影器; public Messageadapter(上下文mContext、列表mChat、字符串imageurl){ this.mContext=mContext; this.mChat=mChat; this.imageurl=imageurl; } @非空 @凌驾 public Messageadapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType){ if(viewType==MSG\u TYPE\u RIGHT){ 查看视图=LayoutFlater.from(mContext).充气(R.layout.chat\u item\u right,parent,false); 返回新的Messageadapter.ViewHolder(视图); }否则{ 视图=布局从(mContext)变平。充气(R.layout.chat\u item\u left,parent,false); 返回新的Messageadapter.ViewHolder(视图); } } @凌驾 public void onBindViewHolder(@NonNull RecyclerView.ViewHolder,int位置){ Chat Chat=mChat.get(位置); ((ViewHolder)holder).show_message.setText(chat.getMessage());//这一行显示错误///////////////// ((UserAdapter.ViewHolder)holder).profile_image.setImageResource(R.mipmap.ic_启动器); } @凌驾 public int getItemCount(){ 返回mChat.size(); } 公共类ViewHolder扩展了RecyclerView.ViewHolder{ 公共文本视图显示消息; 公共图像查看剖面图; 公共视图持有者(@NonNull View itemView){ 超级(项目视图); show_message=itemView.findviewbyd(R.id.show_message); profile\u image=itemView.findviewbyd(R.id.profileimage); } } @凌驾 public int getItemViewType(int位置){ fuser=FirebaseAuth.getInstance().getCurrentUser(); if(mChat.get(position.getSender().equals(fuser.getUid())){ 返回消息类型右; } 否则{ 返回消息类型左; } } } 我希望此
Viewholder
拾取此消息,但它不显示。

此处((Viewholder)holder)。show_message.setText(chat.getMessage()); 您正在铸造基本回收器视图支架,而不是视图支架


改为这样((UserAdapter.ViewHolder).show_message.setText(chat.getMessage());

请共享chat_item_right和chat_item_left布局xml文件