单击 RecyclerView 的 Item 期间应用程序崩溃

Application crash during Item click of recyclerView

当我点击 RecyclerView 的 ItemView 时,我的应用程序崩溃了,代码中没有显示错误。 数据在 toast 中加载但不传递给其他 class 或不知道的东西,但是当我单击任何项​​目时应用程序崩溃..

这是我的主要 RecyclerView Class


import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.Toast;

import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;


import java.util.ArrayList;

public class Admin extends AppCompatActivity {
     Button addUser;
     RecyclerView mainUserRecyclerView;
     UserAdapter adapter;
     FirebaseDatabase database;
     ArrayList<UserInfo> userInfoArrayList  = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_admin);

        
        mainUserRecyclerView = findViewById(R.id.mainUserRecyclerView);
        mainUserRecyclerView.setLayoutManager(new LinearLayoutManager(this));
        
        addUser = findViewById(R.id.addUserBtn);

        database= FirebaseDatabase.getInstance();

       DatabaseReference reference = database.getReference().child("userInfo");
        reference.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {

                for(DataSnapshot dataSnapshot : snapshot.getChildren()){
                    UserInfo userInfo = dataSnapshot.getValue(UserInfo.class);
                    userInfoArrayList.add(userInfo);
                }
                adapter.notifyDataSetChanged();
            }
            @Override
            public void onCancelled(@NonNull  DatabaseError error) {
                Toast.makeText(Admin.this,"Failed to get data",Toast.LENGTH_SHORT).show();
            }
        });
        adapter = new UserAdapter(Admin.this,userInfoArrayList);
        mainUserRecyclerView.setAdapter(adapter);
    }

  
      public void setAddUser(View view){
        Intent intent = new Intent(this,user_detail.class);
          startActivity(intent);
      }

}

这是我的适配器Class

package com.example.rent;

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 java.util.ArrayList;

public class UserAdapter extends RecyclerView.Adapter<UserAdapter.viewHolder> {
    Context  admin;
   ArrayList<UserInfo> userInfoArrayList;
    public UserAdapter(Admin admin, ArrayList<UserInfo> userInfoArrayList) {

        this.admin = admin;
        this.userInfoArrayList = userInfoArrayList;
    }
    @NonNull
    @Override
    public viewHolder onCreateViewHolder(@NonNull  ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(admin).inflate(R.layout.user_list_item,parent,false);
        return new viewHolder(view);
    }
    @Override
    public void onBindViewHolder(@NonNull  UserAdapter.viewHolder holder, int position) {
        UserInfo userInfo = userInfoArrayList.get(position);
        holder.user_name.setText(userInfo.getShopName());
        holder.itemView.setOnClickListener(v -> {

           Intent intent = new Intent(admin,Display_User.class);
            //Toast.makeText(admin, ""+userInfo.getOneMonthRent(), Toast.LENGTH_SHORT).show();
            intent.putExtra("Name",userInfo.getShopName());
            intent.putExtra("Rent",userInfo.getOneMonthRent());
            intent.putExtra("Complex",userInfo.getComplexName());
            intent.putExtra("PaidRent",userInfo.getPaidAmount());
            intent.putExtra("DMonth",userInfo.getDefaultMonth());
            intent.putExtra("PendingRent",userInfo.getPendingAmount());
            admin.startActivity(intent);

        });
    }

    @Override
    public int getItemCount() {
        return userInfoArrayList.size();
    }


   public static class viewHolder extends RecyclerView.ViewHolder  {
        TextView user_name;
        public viewHolder(@NonNull  View itemView) {
            super(itemView);
            user_name = itemView.findViewById(R.id.tvUserName);

        }
   }
}

以及我必须从中获取数据的显示用户 class

package com.example.rent;

import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

public class Display_User extends AppCompatActivity {


     TextView tvName,tvRent,tvComplex,tvPaidRent,tvDefaultMonth,tvPendingRent;
     String Sname, rent, complex, paidRent, defaultMonth, pendingRent;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.display_user);

        
         Sname = getIntent().getStringExtra("Name");
         rent = getIntent().getStringExtra("Rent");
         complex = getIntent().getStringExtra("Complex");
         paidRent = getIntent().getStringExtra("PaidRent");
         defaultMonth = getIntent().getStringExtra("DMonth");
         pendingRent = getIntent().getStringExtra("Pending");


        tvName = findViewById(R.id.tvName);
        tvName.setText(Sname);

        tvRent = findViewById(R.id.tvRent);
        tvRent.setText(rent);

        tvComplex = findViewById(R.id.tvComplex);
        tvComplex.setText(complex);

        tvPaidRent = findViewById(R.id.tvPaidRent);
        tvPaidRent.setText(paidRent);

        tvDefaultMonth = findViewById(R.id.tvDefault);
        tvDefaultMonth.setText(defaultMonth);

        tvPendingRent = findViewById(R.id.tvPending);
        tvPendingRent.setText(pendingRent);


    }
}

您是否在清单文件中声明了 Activity?以及意图?