FIrebase Adapter неправильно заполняет данные - PullRequest
0 голосов
/ 01 апреля 2019

Извините, если я задаю хромые вопросы, я новичок в разработке для Android.У меня есть действие, в котором проблема с переполнением адаптера переработчика firebase заключается в том, что он не заполняет переработчик (loadFoodlist), когда я щелкаю по этому действию один раз.

Но когда я щелкаю по этому действию дважды или трижды, после этого оно становитсяданные отлично, я не знаю, в чем проблема, когда это происходит, когда я перезапускаю приложение?

Структура базы данных образ базы данных

public class FoodDetailModel {

 String name, price, description, type;

public FoodDetailModel(){

}

public FoodDetailModel(String name, String price, String description, String type) {
    this.name = name;
    this.price = price;
    this.description = description;
    this.type = type;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getPrice() {
    return price;
}

public void setPrice(String price) {
    this.price = price;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}

public String getType() {
    return type;
}

public void setType(String type) {
    this.type = type;
}

}

открытый класс FoodDetailViewHolder extends RecyclerView.ViewHolder {

public TextView foodname,price,description;
public Button delete;
public ImageView type;

public FoodDetailViewHolder(@NonNull View itemView) {
    super(itemView);

    foodname = (TextView) itemView.findViewById(R.id.food_name);
    price = (TextView) itemView.findViewById(R.id.food_price);
    description = (TextView) itemView.findViewById(R.id.food_description);
    delete = (Button) itemView.findViewById(R.id.add_to_cart);
    type = itemView.findViewById(R.id.type);


}

}

открытый класс FoodDetail extends AppCompatActivity {

FirebaseDatabase database;
FirebaseAuth mAuth;
DatabaseReference ref;

FirebaseRecyclerAdapter<FoodDetailModel, FoodDetailViewHolder> adapter;

RecyclerView recycler_menu;
RecyclerView.LayoutManager layoutManager;
CollapsingToolbarLayout collapsingToolbarLayout;

ProgressDialog dialog1 ;

String resID = "", resName = "";

ImageView imageView;

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

    dialog1 = new ProgressDialog(FoodDetail.this);

    mAuth = FirebaseAuth.getInstance();
    imageView = (ImageView) findViewById(R.id.food_img);

    if(getIntent() != null){
        resID = getIntent().getStringExtra("restraunt_id");
        resName = getIntent().getStringExtra("name");
    }

    // init firebase

    collapsingToolbarLayout = findViewById(R.id.collapsing);
    collapsingToolbarLayout.setExpandedTitleTextAppearance(R.style.ExpandedAppBar);
    collapsingToolbarLayout.setCollapsedTitleTextAppearance(R.style.CollapsedAppBar);
    collapsingToolbarLayout.setTitle(resName);

    // load restuarant list from firebase
    recycler_menu = (RecyclerView) findViewById(R.id.foodmenu_list);
    recycler_menu.setHasFixedSize(true);

    layoutManager = new LinearLayoutManager(this);
    recycler_menu.setLayoutManager(layoutManager);

    loadFoodList();
    loadName();

}

private void loadName() {

    DatabaseReference ref1 = FirebaseDatabase.getInstance().getReference();
    DatabaseReference mostafa = ref1.child("restaurant").child(resID).child("img");

    mostafa.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String imgURL = dataSnapshot.getValue(String.class);
            Picasso.with(getBaseContext()).load(imgURL).fit().into(imageView);
        }
        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

}

private void loadFoodList() {

    ref = FirebaseDatabase.getInstance().getReference().child("menu").child(resID);

    System.out.println("getttts here" + ref.toString());

    adapter = new FirebaseRecyclerAdapter<FoodDetailModel, FoodDetailViewHolder>
            (FoodDetailModel.class,R.layout.food_detail_blueprint, FoodDetailViewHolder.class,ref) {
        @Override
        protected void populateViewHolder(final FoodDetailViewHolder viewHolder, final FoodDetailModel model, final int position) {

            final String x = adapter.getRef(position).toString();

            viewHolder.foodname.setText(model.getName());
            viewHolder.price.setText("₹"+model.getPrice());
            viewHolder.description.setText(model.getDescription());

                String typ = model.getType();

                if (typ.equals("veg")){
                    viewHolder.type.setImageResource(R.drawable.veg);
                } else {
                    viewHolder.type.setImageResource(R.drawable.nonveg);
                }


            viewHolder.delete.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    final AlertDialog.Builder alert = new AlertDialog.Builder(FoodDetail.this);
                    alert.setTitle("Delete entry");
                    alert.setMessage("Are you sure you want to delete?");
                    alert.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                        }
                    });
                    alert.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            // close dialog
                            dialog.cancel();
                        }
                    });
                    alert.show();

                }
            });

        }
    };
    recycler_menu.setAdapter(adapter);

}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...