【问题标题】:Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence) on a null object reference尝试在空对象引用上调用虚拟方法 'void android.widget.TextView.setText(java.lang.CharSequence)
【发布时间】:2019-10-05 21:31:14
【问题描述】:

我正在尝试创建一个回收器视图,该视图在它的名称下显示一张图片作为 instagram 中的故事。我已经完成了所有操作,但代码仍然没有运行并在 com.example.recyclerview.Adapter.onBindViewHolder(Adapter) 处告诉我一个错误.java:36) 在 com.example.recyclerview.Adapter.onBindViewHolder(Adapter.java:14)

公共类适配器扩展 RecyclerView.Adapter{

List<Story> storiesList;

public Adapter(List<Story> itemsList) {
    this.storiesList = itemsList;
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

 View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_main, parent, false);
    return new ViewHolder(view) ;

}

@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int position) {

    Story story = storiesList.get(position);
    Log.d("street",story.getName());
    viewHolder.name.setText(story.getName());


}

@Override
public int getItemCount() {
    if (storiesList == null)return 0;
    return storiesList.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {

    TextView name;
    ImageView sora;

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

        name = (TextView) itemView.findViewById(R.id.nameofuser);
        sora = itemView.findViewById(R.id.imageN);


    }
}

}

【问题讨论】:

  • 你的activity_main是否包含那个TextView?

标签: android android-adapter


【解决方案1】:

我不确定,但您似乎想在适配器中填充错误的布局

LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_main, parent, false);

当我想应该有类似 R.layout.item_view 的项目视图布局时,您正试图膨胀 R.layout.activity_main

我可能错了,因为我看不到你的R.layout.activity_main

希望对你有帮助。

【讨论】:

  • 是的,你是对的,我实际上尝试编写 Item_view 布局,但问题是 android studio 需要关闭然后打开,这样我才能看到活动。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-28
相关资源
最近更新 更多