- Forum-Beiträge: 17
16.10.2018, 22:31:51 via Website
16.10.2018 22:31:51 via Website
Hey,
Habe direkt ein paar Fragen. Hoffentlich ist das okay. Möchte nicht drei verschiedene Threads aufmachen.
Also zu meiner App.
Die App besteht darin, dass man Wörter in eine Firebase Datenbank lädt und dass diese danach in einer Ranking Activity dargestellt werden. Nutzer können über die Wörter abstimmen. Eine Variable zählt die up und down votes dann.
Daten laden funktioniert, das up und down voten auch.
Hier mal der Code:
private RecyclerView recycleRank;
private LinearLayoutManager layManRank;
private FirebaseRecyclerAdapter<Word, RankingActivity.RankingViewHolder> recAdapterRank;
...
DatabaseReference personsRef = FirebaseDatabase.getInstance().getReference("Word");
Query personsQuery = personsRef.orderByChild("count");
recycleRank.hasFixedSize();
layManRank = new LinearLayoutManager(this);
layManRank.setReverseLayout(true);
layManRank.setStackFromEnd(true);
recycleRank.setLayoutManager(layManRank);
....
recAdapterRank = new FirebaseRecyclerAdapter<Word, RankingViewHolder>(personsOptions) {
@Override
protected void onBindViewHolder(RankingActivity.RankingViewHolder holder, final int position, final Word model) {
holder.setWord(model.getWord());
long score = model.getCount();
holder.setScore(String.valueOf(score));
holder.setRank(String.valueOf(holder.getAdapterPosition()));
}
Nun zu den Fragen.
Mit .
setReverseLayout
zeigt es mir das Ranking richtig an. Ohne das, ist die niedrigste Zahl ganz oben und die höchste ganz unten. Das macht ja weniger Sinn.
So nun möchte ich aber mitholder.setRank(String.valueOf(holder.getAdapterPosition()));
die Platzierung des Wortes angeben. Dadurch, dass aber .setReverseLayoutgesetzt ist, sieht das ganze so aus:Nr Word Score
2 Tree 12
1 Wood 9
es sollte aber so aussehen:
Nr Word Score
1 Tree 12
2 Wood 9
Wie kann man das lösen? Mit einem String Array? Oder geht das einfacher?
Wie geht das, dass die Ranking Activity nur 100 Wörter fassen kann?
MitpersonsQuery .limitToFirst(100);
funktioniert das irgendwie nicht. Es werden einfach alle Einträge geladen.Wie kann man eine Progressbar setzten, während die Daten laden? Bekomme das einfach nicht hin. Dachte mit einem Handler, aber irgendwie will das nicht so richtig.
Das wäre es einmal.
Sorry für den langen Text.
Es wäre super, wenn mir jemand helfen könnte. Komme einfach nicht weiter.
Vielen Dank im Voraus!
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.