- Forum-Beiträge: 187
24.03.2021, 21:34:34 via Website
24.03.2021 21:34:34 via Website
Hallo Leute!
Ich bin gerade am optimieren einer Activity. Ich versuche gerade ein SUbmenu so zu gestalten, das diese sich wie Ordner verhalten, soll heissen ich klicke mich durch SubMenus...:
subMenu.add(1,b,b++,dsPhase.getname()).
setIcon(R.drawable.gruppen)
.setVisible(true)
.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
subMenu.clear();
loadPhase(dsPhase);
}
return true;
}
});
In loadPhase(dsPhase) soll nun das darunterliegende SUbMenü geladen werden. laut logs wird alles aufgerufen aber der angeklickte subMenu verschwindet nicht, und die neuen werden nicht geladen....
( wenn nur ein ordner vorhanden ist, wird automatisch auf das nächste verzeichnis verwissen ( auch loadPhase(dsPhase) ) und es klappt! )
wenn ich nun
subMenu.clear();
loadPhase(dsPhase);
in firebase addListenerForSingleValueEvent lade, funktioniert es aber auch:
subMenu.add(1,b,b++,dsPhase.getname()).
setIcon(R.drawable.gruppen)
.setVisible(true)
.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
dsPhase.getDataSnapshot().getRef().addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
subMenu.clear();
loadPhase(dsPhase);
}
@Override
public void onCancelled(@NonNull DatabaseError error) { }
});
return true;
}
});
da ich aber am Optimieren bin, und die Daten ja schon habe, und den Datasnapshot mit(dsPhase) weitergeben möchte, will ich keine Call funktion mehr aufrufen, wie kann ich den erneuten aufruf umgehen, woran liegt überhaupt das Problem? ich habe auch ein a.runonUiThread versucht, ich kapiers nicht! VIelen dank schon mal in vorraus
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.