首页 > 解决方案 > Context.getSystemService(java.lang.String) null

问题描述

当我单击 RecyclerView 时,我想在数据库中捕获房间的数据,但我遇到了问题。当我单击 RecyclerView 时如何捕获这些数据。我在 ArrayAdapter 部分收到此错误。

错误:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“java.lang.Object android.content.Context.getSystemService(java.lang.String)”

    public class ProductsNewAdapter extends RecyclerView.Adapter<ProductsNewAdapter.ProductViewHolder> {
        Context mCtx;
        private Spinner spinner;
        List<String> Rooms = new ArrayList<String>();
     public ProductsNewAdapter(Context mCtx, List<ProductNew> productList) {
            this.mCtx = mCtx;
            this.productList = productList;

        }
     @Override
        public ProductViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(mCtx).inflate(R.layout.product_laylout_new,
                    parent, false);
            ProductViewHolder productViewHolder = new ProductViewHolder(view);
            return productViewHolder;

        }

        int selectedPosition=-1;


        @Override
        public void onBindViewHolder(final ProductViewHolder holder, final int position) {
            if(selectedPosition==position)
                holder.itemView.setBackgroundColor(Color.parseColor("#25E9F9"));
            else
                holder.itemView.setBackgroundColor(Color.parseColor("#ffffff"));

            holder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(final View v) {
                    selectedPosition=position;
                    notifyDataSetChanged();

DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();

    DatabaseReference refRooms = mDatabase.child("0").child("Rooms");

                refRooms.addValueEventListener(new ValueEventListener() {
               @Override
          public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        for (DataSnapshot snapshot : dataSnapshot.getChildren()){
          spinner = (Spinner) v.findViewById(R.id.spinnerMain);
          ViewGroup parent = null;
View view =
LayoutInflater.from(parent.getContext()).inflate(R.layout.product_laylout_new,
                                    parent, false);

                        String data = snapshot.getValue(String.class);
                       Rooms.add(data);
                          //  addListenerOnSpinnerItemSelection();
                            }
                        }

                        @Override
                        public void onCancelled(DatabaseError databaseError) {
                        }
                    });
                }
            });

标签: android

解决方案


尝试这个,

View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.product_laylout_new,
            parent, false);

推荐阅读