Java 如何从类的方法传递意图的上下文?

Java 如何从类的方法传递意图的上下文?,java,android,Java,Android,错误:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.content.Context android.content.getApplicationContext()” 在com.adriitsolutions.prarthana.AdapterForListView.MyRequestForBloodRequirementListRecyclerView$1.onClick(MyRequestForBloodRequirementLi

错误:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.content.Context android.content.getApplicationContext()” 在com.adriitsolutions.prarthana.AdapterForListView.MyRequestForBloodRequirementListRecyclerView$1.onClick(MyRequestForBloodRequirementListRecyclerView.java:153) 在android.view.view.performClick上(view.java:6935) 这是我的密码

爪哇 ((MyViewHolderForRecyclServiceWofMenu)viewHolder).iv_我的请求_视图.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ //showLeadDetails(职位); context.startActivity(新意图(context,ViewDonorListActivity.class)); Log.e(“ONCLICK”、“查看请求”); } });


您应该发布完整的适配器类,因为我们应该看到您在哪里初始化mContext。但默认情况下,您可以通过适配器的构造函数方法获取上下文

比如:

private List<Obj> list;
private Context mContext;

public AdapterRvBid(List<Obj> list, Context mContext) {
    this.list = list;
    this.mContext= mContext;
}
私有列表;
私有上下文;
公共适配器rRVID(列表,上下文mContext){
this.list=列表;
this.mContext=mContext;
}

我在主要活动中进行了如下编辑:

   public static Context mContext;

public static Context getContext() {
    return mContext;
}
后来使用这个上下文,我能够传递调用另一个活动的意图

Intent intent = new Intent( MyRequestActivity.getContext() , ViewDonorListActivity.class );
                        MyRequestActivity.getContext().startActivity( intent );

只需使用ViewHolder的项目视图中的上下文-

解决方案

Context context = holder.itemView.getContext();
context.startActivity(new Intent(context,ViewDonorListActivity.class));

您可以从
视图v
获取上下文,只需使用v.getContext,我相信请共享您调用的适配器类和活动/片段adapter@a_local_nobodypublic void onBindViewHolder(@NonNull final RecyclerView.ViewHolder ViewHolder,final int position)这就是我所经历的args@KishanMaurya我现在已经共享了。没有必要将上下文传递到回收器适配器,您可以从viewholderstatic上下文对象获取它,因为它会导致内存泄漏。。查看有关上下文和适配器类的文档。。
Context context = holder.itemView.getContext();
context.startActivity(new Intent(context,ViewDonorListActivity.class));