Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java onbindViewholder包含空对象_Java_Android_Firebase Realtime Database_Android Recyclerview - Fatal编程技术网

Java onbindViewholder包含空对象

Java onbindViewholder包含空对象,java,android,firebase-realtime-database,android-recyclerview,Java,Android,Firebase Realtime Database,Android Recyclerview,当我运行“活动”时,它会显示我想要的项目以及一个空卡片视图(当我从holder.setTitle(“产品名称:”+model.getName().tostring());中删除tostring()时,我正在努力解决这个问题,但没有找到解决方案 这是我的班级客户订单: public class Client_order extends AppCompatActivity { FragmentManager fragmentManager; Fragment Settingsfrag,Orderf

当我运行“活动”时,它会显示我想要的项目以及一个空卡片视图(当我从
holder.setTitle(“产品名称:”+model.getName().tostring());
中删除
tostring()
时,我正在努力解决这个问题,但没有找到解决方案

这是我的班级客户订单:

public class Client_order extends AppCompatActivity {

FragmentManager fragmentManager;
Fragment Settingsfrag,Orderfrag,panierfrag;

TextView delorder;

Order model2;
Button submit;
DatabaseReference ref,ref1,ref2;




private Toolbar hometoolbar;

private ImageView settingsbtn, orderIV, imageView7,imageView10;
private RecyclerView orderrv;








private FirebaseAuth mAuth;
private FirebaseUser currentUser;
private DatabaseReference mDatabase;

private String user_id;
Spinner spinnerorder;

private String name;
private String email;
private String phone;
TextView tvName;
Orderviewholder holder1;

private FirebaseRecyclerAdapter<Order, Orderviewholder> orderAdapter;



DatabaseReference dborder,dbpanier;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_client_order);
    tvName = findViewById(R.id.tvName);


    hometoolbar = findViewById(R.id.hometoolbarorder);
    hometoolbar.setTitle("ordre");
    hometoolbar.setTitleTextColor(Color.WHITE);








    settingsbtn = findViewById(R.id.settingsbtn);
    orderIV = findViewById(R.id.orderIV);
    imageView7 = findViewById(R.id.imageView7);
    fragmentManager=getSupportFragmentManager();





    Orderfrag=fragmentManager.findFragmentById(R.id.orderfrag);

    Settingsfrag=fragmentManager.findFragmentById(R.id.settingsfrag);
    mAuth = FirebaseAuth.getInstance();
    currentUser = mAuth.getCurrentUser();
    mDatabase = FirebaseDatabase.getInstance().getReference();




    if (currentUser == null) {
        Intent intent=new Intent(Client_order.this,Login.class);
        startActivity(intent);
    } else {
        if (!mAuth.getCurrentUser().isEmailVerified()) {
            Toast.makeText(getApplicationContext(), "Please verify your email address", Toast.LENGTH_LONG).show();
            Intent startActivity = new Intent(this, Login.class);
            startActivity(startActivity);
            finish();
        } else {
            user_id = currentUser.getUid();

        }
    }
    Toast.makeText(getApplicationContext(),user_id, Toast.LENGTH_LONG).show();

    panierfrag=fragmentManager.findFragmentById(R.id.panierfrag);
    submit=findViewById(R.id.submit);

    submit.setVisibility(View.VISIBLE);


    fragmentManager.beginTransaction()
            .hide(panierfrag)

            .show(Orderfrag)
            .hide(Settingsfrag)
            .commit();
    imageView7.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent=new Intent(Client_order.this,Client_panier.class);
            startActivity(intent);

        }
    });

    settingsbtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            fragmentManager.beginTransaction()
                    .hide(panierfrag)

                    .hide(Orderfrag)
                    .show(Settingsfrag)
                    .commit();

        }
    });

    orderIV.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            fragmentManager.beginTransaction()
                    .hide(panierfrag)

                    .show(Orderfrag)
                    .hide(Settingsfrag)
                    .commit();


        }
    });




    dborder = FirebaseDatabase.getInstance().getReference().child("order");
    dborder.keepSynced(true);

    orderrv = (RecyclerView) findViewById(R.id.orderrv);

    DatabaseReference personsRef = FirebaseDatabase.getInstance().getReference().child("order").child(user_id.toString());
    Query personsQuery = personsRef.orderByKey();

    orderrv.hasFixedSize();
    orderrv.setLayoutManager(new LinearLayoutManager(this));

    FirebaseRecyclerOptions personsOptions = new FirebaseRecyclerOptions.Builder<Order>().setQuery(personsQuery, Order.class).build();

    orderAdapter=new FirebaseRecyclerAdapter<Order, Orderviewholder>(personsOptions) {
        @Override
        protected void onBindViewHolder(@NotNull Orderviewholder holder, int position, @NotNull Order model) {
            holder.setTitle("product name:"+model.getName().toString());
            holder1=holder;
            imageView10=holder.mView.findViewById(R.id.imageVieworder);
            Picasso.get().load(model.getImage()).into(imageView10, new Callback() {
                @Override
                public void onSuccess() {
                    ProgressBar progressbar3;
                    progressbar3=holder1.mView.findViewById(R.id.progressBar4);
                    progressbar3.setVisibility(View.INVISIBLE);
                }

                @Override
                public void onError(Exception e) {

                }
            });
            holder.setdesc(model.getDesc().toString());
            holder.setprice(model.getPrice());
            holder.setquantity(model.getQuantity());
            TextView status;
            status=holder.mView.findViewById(R.id.statusorder);
            status.setText(model.getStatus());
            status.setVisibility(View.VISIBLE);
            delorder=holder.mView.findViewById(R.id.orderDelbtn);
            delorder.setText("done");
            holder.mView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    delorder.setVisibility(View.VISIBLE);
                }
            });
            model2=model;
            delorder.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    dborder.child(currentUser.getUid()).child(model2.getId()).removeValue().addOnCompleteListener(new OnCompleteListener<Void>() {
                        @Override
                        public void onComplete(@NotNull Task<Void> task) {
                            if (task.isSuccessful()) {
                                Toast.makeText(Client_order.this, "order deleted successfully", Toast.LENGTH_LONG).show();
                            }
                        }
                    });
                }
            });
            submit.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    ref=FirebaseDatabase.getInstance().getReference().child("order").child(user_id.toString());
                    ref2=FirebaseDatabase.getInstance().getReference().child("order").child(user_id.toString()).child("submitted");
                    ref1=FirebaseDatabase.getInstance().getReference().child("order").child("admin");
                    ref.addListenerForSingleValueEvent(new ValueEventListener() {
                        @Override
                        public void onDataChange(@NotNull DataSnapshot dataSnapshot) {
                            for (DataSnapshot orderSnapshot: dataSnapshot.getChildren()) {
                                Order category = orderSnapshot.getValue(Order.class);
                                //if (category!=null){
                                ref1.child(category.getId()).setValue(category);
                                Toast.makeText(Client_order.this,"product successfully submitted", Toast.LENGTH_LONG).show();
                                ref2.child(category.getId()).setValue(category);
                                ref.child(category.getId()).removeValue();


                                // }
                            }


                        }

                        @Override
                        public void onCancelled(@NotNull DatabaseError databaseError) {

                        }
                    });
                }
            });



        }

        @NotNull
        @Override
        public Orderviewholder onCreateViewHolder(@NotNull ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext())
                    .inflate(R.layout.product_list_itemorder, parent, false);
            return new Orderviewholder(view);
        }
    };
    orderrv.setAdapter(orderAdapter);

}

@Override
protected void onStart() {
    super.onStart();
    orderAdapter.startListening();
}

@Override
protected void onStop() {
    super.onStop();
    orderAdapter.stopListening();
}

public static class Orderviewholder extends RecyclerView.ViewHolder{
    View mView;
    public Orderviewholder(View itemView){
        super(itemView);
        mView = itemView;
    }
    public void setTitle(String title){
        TextView post_title = (TextView)mView.findViewById(R.id.order_name);
        post_title.setText(title);
    }
    public void setdesc(String desc) {
        TextView post_title = (TextView) mView.findViewById(R.id.order_description);
        post_title.setText(desc);
    }
    public void setprice(int price) {
        TextView post_title = (TextView) mView.findViewById(R.id.order_price);
        post_title.setText(Integer.toString(price)+" dhs");
    }
    public void setquantity(int quantity) {
        TextView post_title = (TextView) mView.findViewById(R.id.order_quantity);
        post_title.setText(Integer.toString(quantity));
    }
 }
}

这是因为
Order.name
字段为空。您应该检查您从Firebase.Order.name获得的数据是否为空。所有订单都有一个名称当我删除到字符串方法时,它会显示所有数据加上一个额外的空cardviewholder.setTitle(“产品名称:“+model.getName().toString().trim())你有没有像我刚才说的那样,最后试着修剪绳子?还是同样的错误
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.toString()' on a null object reference
    at com.omar.lazywork.Client_order$4.onBindViewHolder(Client_order.java:207)
    at com.omar.lazywork.Client_order$4.onBindViewHolder(Client_order.java:204)