【发布时间】:2020-12-05 18:07:21
【问题描述】:
我正在尝试将上下文从我的 java 类发送到我的 RecyclerView 适配器,因此我可以单击元素并被重定向到一个意图。显然,上下文不正确。我已经评论了它的行并且该应用程序可以正常工作,但是一旦我尝试证明它,它就会再次开始崩溃。
我认为这是一个上下文问题,但如果有另一种方法可以为我的元素设置点击方法,那将非常有帮助。
它抛出的异常是空指针异常:
java.lang.RuntimeException:无法启动活动: java.lang.NullPointerException:尝试调用虚拟方法'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' 在空对象引用上
这是适配器代码:
public class SubsidioAdapter extends RecyclerView.Adapter<SubsidioAdapter.SubsidioViewHolder> {
private Context context;
private List<Producto> productoList;
private LayoutInflater inflater;
public SubsidioAdapter(Context context, List<Producto> productoList) {
this.context = context;
this.productoList = productoList;
this.inflater = LayoutInflater.from(context);
}
@Override
public SubsidioViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = this.inflater.inflate(R.layout.producto_item, null);
return new SubsidioViewHolder(view);
}
@Override
public void onBindViewHolder(SubsidioViewHolder subsidioViewHolder, int position) {
subsidioViewHolder.imageView.setImageResource(this.productoList.get(position).getFoto());
subsidioViewHolder.textView1.setText(this.productoList.get(position).getNombre());
subsidioViewHolder.textView2.setText(this.productoList.get(position).getDescripcion());
subsidioViewHolder.textView3.setText(this.productoList.get(position).getPrecio());
subsidioViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
context.startActivity(new
Intent(context, ModificarProductoActivity.class));
}
});
}
@Override
public int getItemCount() {
return this.productoList.size();
}
public class SubsidioViewHolder extends RecyclerView.ViewHolder {
ImageView imageView;
TextView textView1;
TextView textView2;
TextView textView3;
public SubsidioViewHolder(View itemView) {
super(itemView);
this.imageView = itemView.findViewById(R.id.fotoSub);
this.textView1 = itemView.findViewById(R.id.descSub);
this.textView2 = itemView.findViewById(R.id.nombreSub);
this.textView3 = itemView.findViewById(R.id.precioSub);
}
}
}
【问题讨论】:
-
它是一个空指针异常:java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.proingsoftware/proingsoftware.activities.funcionario.ModificarProductoActivity}:java.lang.NullPointerException:尝试调用空对象引用上的虚拟方法“void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)”
-
它不是一个按钮,它是我的回收站视图中的一个元素,在任何被点击的元素上它都应该意图
-
你的异常是
Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference,这意味着你在一个空的Button上设置了一个监听器 -
但没有声明按钮,我没有在该活动中使用任何按钮:(
-
崩溃什么时候发生?你怎么做才能撞车?点击 RV 的某个项目?
标签: java android android-recyclerview android-adapter