для цикла, присваивающего последний результат переменной - PullRequest
0 голосов
/ 06 ноября 2018

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

Вот как выглядит пользовательский интерфейс, который я пытаюсь изменить:

enter image description here

И это структура базы данных, из которой они черпаются в firebase:

enter image description here

Но, как вы можете видеть, значение ставки всегда прибегает к последнему узлу ставки в базе данных. Это происходит потому, что цикл for, который получает эти значения, проходит через каждое отдельное значение ставки в базе данных и присваивает значение, которое он получает, переменной. Вот цикл получения значений ставки

    public void getWager(final WagerCallback wagerCallback) {
    FCGames.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            for (DataSnapshot snapshot: dataSnapshot.getChildren()) {
                double wagerr = snapshot.child("wager").getValue(Double.class);
                String wagerD = Double.toString(wagerr);
                boolean wage = wagerD.endsWith("0");

                if(wage) {
                    wagerD = "$"+Double.toString(wagerr)+"0";
                } else
                    wagerD = "$"+Double.toString(wagerr);

                wages.add(wagerD);

                        wagerCallback.onCallback(wagerD);
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
            throw databaseError.toException();
        }
    });
}

Затем я устанавливаю значение textView на ставку в моем классе RecyclerViewer:

        fcl.getWager(new FlipCoinLobby.WagerCallback() {
            @Override
            public void onCallback(String wager) {
                    holder.wager.setText(wager);
            }
        });

И я застрял на том, как получить каждое значение ставки из базы данных и присвоить его коррелированному интерфейсу. Я попытался создать цикл for, который добавляет ставки в список, а затем сопоставляет индексы ставок и список узлов, но это не сработало.

Есть предложения?

1 Ответ

0 голосов
/ 07 ноября 2018

Возможно, вы захотите перенести все данные в какую-то локальную структуру. Создайте класс для «игрока» с переменными для данных, а затем используйте его, чтобы делать то, что вы делаете. Не уверен, если это представление списка / переработчика или нет.

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

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