Reputation: 91
Error : java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference at com.adriitsolutions.prarthana.AdapterForListView.MyRequestForBloodRequirementListRecyclerView$1.onClick(MyRequestForBloodRequirementListRecyclerView.java:153) at android.view.View.performClick(View.java:6935) Here is my code.
java ((myViewHolderForRecyclerViewOfMenu) viewHolder).iv_my_request_view.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { // showLeadDetails(position); context.startActivity(new Intent( context , ViewDonorListActivity.class)); Log.e("ONCLICK", "View Request"); } });
Adapter : @Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.sendAt.setText(mData.get(position).getSendAt());
holder.radius.setText(mData.get(position).getRadius());
holder.acceptedStatus.setText(mData.get(position).getAcceptedStatus());
holder.requestBloodGrpType.setImageResource(mData.get( position ).getRequestBloodGrpType() );
//holder.requestUrgenyType.setImageResource( mData.get( position ).getRequestUrgencyType() );
holder.viewRequest.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
mContext.startActivity(new Intent(mContext,ViewDonorListActivity.class));
}
} );
/* holder.buttonView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mContext.startActivity(new Intent(mContext,ViewDonorListActivity.class));
}
});*/
}
Upvotes: 2
Views: 1460
Reputation: 2733
Simply use context from itemView of ViewHolder -
Solution
Context context = holder.itemView.getContext();
context.startActivity(new Intent(context,ViewDonorListActivity.class));
Upvotes: 2
Reputation: 91
i made an edit like this in my main activity :
public static Context mContext;
public static Context getContext() {
return mContext;
}
and later using this context i was able to pass an intent to call another activity !
Intent intent = new Intent( MyRequestActivity.getContext() , ViewDonorListActivity.class );
MyRequestActivity.getContext().startActivity( intent );
Upvotes: -1
Reputation: 520
you should post your full adapter class, cause we should see where do you initialize mContext.but by default you can get context by constructor method of adapter.
something like:
private List<Obj> list;
private Context mContext;
public AdapterRvBid(List<Obj> list, Context mContext) {
this.list = list;
this.mContext= mContext;
}
Upvotes: 0