';void android.widget.TextView.setText(java.lang.CharSequence)和#x27;在空对象引用Adapter.Messageadapter.onBindViewHolder上
我得到: 尝试调用虚拟方法“void” 空值上的android.widget.TextView.setText(java.lang.CharSequence)“” 对象引用 此错误在崩溃开始时出现。 这是我第一次遇到这种错误';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
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文件