意图错误 android 有人尝试解决此错误并帮助我,检查 SS,我尝试了三种方法来解决但没有用

Getting error in intent android somebody try to solve this error and help me,Check out SS,I tried three methods to solve but no use

在 FirebaseAdapter 中,我在 ViewHolderClass 中创建了 intent 视图

     @Override
        protected void onBindViewHolder(@NonNull MyviewHolder holder, int position, @NonNull DataClass model) {
            holder.name.setText(String.valueOf(model.getName()));
            holder.Nickname.setText(model.getNickname());
            Log.d(TAG, "onBindViewHolder: Now Bind method executing");
           holder.v.setOnClickListener(new View.OnClickListener() {
               @Override
               public void onClick(View v) {
                   Intent i = new Intent(v.getContext(),SecondActivity.class);
                   i.putExtra("Users",getRef(position).getKey());
                   mContext.startActivity(i);
    
               }
           });
        }

In MainActivity:

      mAdapter = new FirebaseAdapter(options,MainActivity.this);

In SecondActivity
  

      public class SecondActivity extends AppCompatActivity {
            DatabaseReference ref;
         TextView gname,gnickname;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_second);
                gname = (TextView)findViewById(R.id.gettingname);
                gnickname =(TextView)findViewById(R.id.gettingnickname);
        
                ref = FirebaseDatabase.getInstance().getReference().child("Users");
        
                String Users = getIntent().getStringExtra("Users");
        
               ref.child(Users).addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot snapshot) {
                        if(snapshot.exists()){
                            String name = Objects.requireNonNull(snapshot.child("Name").getValue()).toString();
                            String nick = Objects.requireNonNull(snapshot.child("Nick").getValue()).toString();
        
                            gname.setText(name);
                            gnickname.setText(nick);
                        }
                    }
        
                    @Override
                    public void onCancelled(@NonNull DatabaseError error) {
        
                    }
                });
      
    
Error:
  Process: com.example.firebasesearchrec, PID: 20933
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
        at com.example.firebasesearchrec.SecondActivity.onDataChange(SecondActivity.java:34)
        at com.google.firebase.database.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:75)

....................... 谢谢....................... ..................................................... ..................................................... ...................................

第三种方法使用这个。

v.getContext().startActivity(i);

首先,获取Activity上下文

Context mContext;
    
Get context from constructor 
public FirbaseAdapter(FirebaseRecyclerOptions<DataClass> options, Context context) {
    super(options);
    this.mContext = context;

}

终于

        Intent i = new Intent(view.getContext(), SecondActivity.class);
        i.putExtra("Users",getRef(position).getKey());
        mContext.startActivity(i);

或者,如果您想要快速简单的解决方案,请试试这个

        Intent i = new Intent(view.getContext(), SecondActivity.class);
        i.putExtra("Users",getRef(position).getKey());
        view.getContext().startActivity(i);