I was writing a code to start new activity when click on a item on recyclerview. This recyclerview gets data from firebase realtime database. Recyclerview work fine.But my app get crash when click on recyclerview item. Pls help me to find the error .
This is my adapter.
package com.example.mybitcoinapp;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerViewAccessibilityDelegate;
import com.bumptech.glide.Glide;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.firebase.ui.database.FirebaseRecyclerOptions;
import de.hdodenhof.circleimageview.CircleImageView;
public class MainAdapter extends FirebaseRecyclerAdapter<MainModel,MainAdapter.myViewHolder> {
/**
* Initialize a {@link RecyclerView.Adapter} that listens to a Firebase query. See
* {@link FirebaseRecyclerOptions} for configuration options.
*
* @param options
*/
Context context;
public MainAdapter(@NonNull FirebaseRecyclerOptions<MainModel> options
) {
super(options);
}
@Override
protected void onBindViewHolder(@NonNull myViewHolder holder, int position, @NonNull MainModel model) {
holder.name.setText(model.getName());
holder.course.setText(model.getCourse());
holder.email.setText(model.getEmail());
}
@NonNull
@Override
public myViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.main_item,parent,false);
return new myViewHolder(view);
}
class myViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
CircleImageView img;
TextView name, course, email;
public myViewHolder(@NonNull View itemView) {
super(itemView);
img =(CircleImageView)itemView.findViewById(R.id.img1);
name = (TextView)itemView.findViewById(R.id.nametext);
course = (TextView)itemView.findViewById(R.id.coursetext);
email = (TextView)itemView.findViewById(R.id.emailtext);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View view) {
int position = getAbsoluteAdapterPosition();
Toast.makeText(context, "position"+position,Toast.LENGTH_SHORT).show();
Intent intent = new Intent(context,TradingviewActivity.class);
context.startActivity(intent);
}
}
}
This is the logcat error.
2022-07-13 18:57:17.096 19720-19720/com.example.mybitcoinapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.mybitcoinapp, PID: 19720
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
at android.widget.Toast.<init>(Toast.java:170)
at android.widget.Toast.makeText(Toast.java:495)
at android.widget.Toast.makeText(Toast.java:483)
at com.example.mybitcoinapp.MainAdapter$myViewHolder.onClick(MainAdapter.java:81)
at android.view.View.performClick(View.java:7455)
at android.view.View.performClickInternal(View.java:7432)
at android.view.View.access$3700(View.java:835)
at android.view.View$PerformClick.run(View.java:28810)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7870)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
From logcat the 81st line of adapter class has the error. This is the 81st line of adapter.
Toast.makeText(context, "position"+position,Toast.LENGTH_SHORT).show();
it would be big help for me guys.