2
私はチェックリストとしてメニュードロワを使用していますが、int値によってはonDrawerClosedを使用しているため、ユーザーに課金されるか、変更を保存しないでください。しかし、onDrawerClosedメソッドは、intと正しい値で1回、intと0の値で1回、2回コールしていますか?これにより、私のプログラムはifとelseの両方の文を呼び出すため、変更が保存され、支払いが促されます。DrawerLayout onDrawerClosed()2回呼び出す
//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
どこから 'drawerListener()'メソッドを呼び出していますか? – azizbekian
それだけです!神はあなたの時間を無駄にして申し訳ありません。それを実現せずにonCreateの代わりにonStartに入れた –