Когда я очищаю массив, который заполнен данными пожарного хранилища во вложенном представлении переработчика? - PullRequest
0 голосов
/ 09 июня 2019

У меня есть настройка вложенного представления рециркулятора (вертикальное представление рециркулятора, содержащее горизонтальные представления рециркулятора), где почти все работает нормально, за исключением части, где мне нужно очистить массив, который заполнен данными для целей горизонтального рециркулятораПосмотреть.Давайте начнем с кода для адаптера представления вертикального переработчика, который заполняет массив из пожарного депо, а внизу я объясняю, что происходит:

public void onBindViewHolder(@NonNull final MealPlanDetailsAdapter.MealPlanDetailsViewHolder mpDetailsViewHolder, final int position) {

        // Set full address
        String fullAddress = mealplanDetailsArrayList.get(position).getAddressLine() + ", " + mealplanDetailsArrayList.get(position).getCity() + ", " +mealplanDetailsArrayList.get(position).getPostalCode();
        mpDetailsViewHolder.tvAddress.setText(fullAddress);



        // Set restaurant name
        mpDetailsViewHolder.tvRestaurant.setText(mealplanDetailsArrayList.get(position).getRestaurantName());

        // Menu items
        mpDetailsViewHolder.mealplanMenuRecycler.setHasFixedSize(true);
        mpDetailsViewHolder.mealplanMenuRecycler.setLayoutManager(new LinearLayoutManager(adapterContext, LinearLayoutManager.HORIZONTAL, false));

        String orderId = mealplanDetailsArrayList.get(position).getOrderDetails();
        final FirebaseFirestore firebaseFirestore = FirebaseFirestore.getInstance();

        FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
        if (firebaseUser != null) {
            for (UserInfo profile : firebaseUser.getProviderData()) {
                userId = profile.getUid();
            }
        }

        // Get menu items
        CollectionReference orderReference = firebaseFirestore.collection("Customer_Data").document(userId).collection("Meal_Plans").document(orderId).collection("Placed_Order");
        orderReference.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
            @Override
            public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
                for (final QueryDocumentSnapshot orderDocument : queryDocumentSnapshots) {
                    mealplanMenuArrayList = new ArrayList<>();

// Get image
                    String restaurantId = mealplanDetailsArrayList.get(position).getRestaurantId();
                    CollectionReference restaurantQuery = firebaseFirestore.collection("Restaurant_Data").document(restaurantId).collection("Menu_Card");
                    restaurantQuery.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
                        @Override
                        public void onSuccess(QuerySnapshot queryDocumentSnapshots) {


                            for (QueryDocumentSnapshot menuDocument : queryDocumentSnapshots){
                                menuItemName = menuDocument.getString("menuItemName");
                                menuItemImage = menuDocument.getString("menuItemImage");
                                if (orderDocument.getString("menuItemName").equals(menuItemName)) {
                                    MealplanMenu mealplanMenu = new MealplanMenu(menuItemName, orderDocument.getString("menuItemQuantity"),menuItemImage);
                                    mealplanMenuArrayList.add(mealplanMenu);
                                }
                            }
                            mealplanMenuAdapter = new MealplanMenuAdapter(adapterContext, mealplanMenuArrayList);
                            mpDetailsViewHolder.mealplanMenuRecycler.setAdapter(mealplanMenuAdapter);
                        }
                    });
                }
            }
        });
    }

Я запрашиваю 2 разные коллекции выше.Мне нужно запросить 2 разных коллекций.Один предоставляет мне большую часть нужных мне данных, а другой - URL-адрес изображения, если совпадают 2 определенных значения в 2 коллекциях.Как вы можете видеть выше, я обновляю массив: foodplanMenuArrayList = new ArrayList <> ();

Однако я либо получаю все горизонтальные значения для каждого вертикального держателя, либо получаю только первые,Где я могу обновить массив, чтобы получить только то, что мне нужно?

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