0

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.

0 Answers0