Ich benutze die Menüleiste als Checkliste und onDrawerClosed abhängig von einem int-Wert wird der Benutzer oder nicht speichern Änderungen zu belasten. Die Methode onDrawerClosed ruft jedoch zweimal auf, einmal mit dem int und dem richtigen Wert und einmal mit dem int und einem Wert von 0? Dies führt dazu, dass mein Programm sowohl die if als auch die else Statements aufruft, damit ihre Änderungen gespeichert werden und sie zur Zahlung aufgefordert werden.DrawerLayout onDrawerClosed() ruft zweimal
//Used so that when drawer closed banned list saves
public void drawerListener(){
mDrawer.addDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
}
@Override
public void onDrawerOpened(View drawerView) {
customAdaptor.clearJustChanged();
}
@Override
public void onDrawerClosed(View drawerView) {
System.out.println("Cost of Changes:" + customAdaptor.getUserCostOfChange());
if (customAdaptor.getUserCostOfChange() > 0) {
getBuyAlert(customAdaptor.getUserCostOfChange());
customAdaptor.setUserCostOfChange(0);
}
else {
bannedList = customAdaptor.getBannedList();
databaseReference.child("BannedApps").setValue(bannedList);
}
}
@Override
public void onDrawerStateChanged(int newState) {
}
});}
Output:
10-26 01:30:40.346 23822-23822/com.shuffle.v01 I/System.out: Cost of
Changes:1000
10-26 01:30:40.450 23822-23822/com.shuffle.v01 I/System.out: Cost of
Changes:0
Woher rufen Sie die 'drawerListener()' Methode? – azizbekian
Das war's! Gott, ein so dummer Fehler tut mir leid, dass du deine Zeit verschwendet hast. Hatte es in onStart statt onCreate ohne zu realisieren –