Я пытаюсь создать метод, который возвращает переменную int, но метод не влияет на переменную.Не могу повлиять на объявленную переменную
Это мой код:
int count;
public int getVotesForEvent(final String event_title) {
firebaseRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.child("Votes").exists()) {
boolean flag = false;
for (DataSnapshot event : dataSnapshot.child("Votes").getChildren()) {
String event_title2 = event.getKey();
if (event_title2.equals(event_title)) {
flag = true;
Toast.makeText(EventInfo.this, ""+Integer.parseInt(event.child("event_votes").getValue().toString()), Toast.LENGTH_SHORT).show();
count = Integer.parseInt(event.child("event_votes").getValue().toString());
}
}
if (flag != true) {
count = 0;
}
}
else {
count = 0;
}
}
});
return count;
}
Проблема заключается в том, что линии:
count = Integer.parseInt(event.child("event_votes").getValue().toString());
Эта линия не осуществление переменной count
.
Что я здесь делаю неправильно?
Какова ценность «event_votes»? – user1301428
Попробуйте более подробно описать, что именно вы ожидаете. Ожидаете ли вы, что после вызова 'getVotesForEvent()' значение 'count' будет изменено? Потому что это не будет :) –
Кто-то изнутри firebaseRef будет вызывать 'onDataChange()'. Только если это произойдет, вы увидите чендж в своей переменной. – GVillani82