Android onBackPressed() wird nicht aufgerufen?

in meiner MainActivity, die sich von AppCompatActivity, ich will onBackPressed überschreiben Sie die Methode so auf:

@Override
public void onBackPressed() {
    Log.d("MainActivity","onBackPressed");
    Toast.makeText(getApplicationContext(),"onBackPressed",Toast.LENGTH_SHORT).show();
}

aber onBackPressed nicht genannt. Wie auch immer, wenn ich nicht onBackPressed überschreiben, schließt sich die Anwendung, wenn ich drücken Sie die Schaltflächen "backbutton" und wenn ich das mache überschreibt es nicht.

Den rest meiner Aktivität sieht wie folgt aus:

public class MainActivity extends AppCompatActivity {

private Toolbar toolbar;
private Drawer drawer;
private FloatingActionButton fab_test;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    fab_test = (FloatingActionButton) findViewById(R.id.fab_test);
    fab_test.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(getApplicationContext(),"FAB Test pressed",Toast.LENGTH_SHORT).show();
        }
    });

    buildDrawer();

    getSupportFragmentManager().beginTransaction().add(R.id.fragmentContainer,page).commit();
}

@Override
public void onBackPressed() {
    Log.d("MainActivity","onBackPressed");
    Toast.makeText(getApplicationContext(),"onBackPressed",Toast.LENGTH_SHORT).show();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_menu, menu);      
    return true;
}
}

EDIT: ich Rede von der hardware-backbutton(nicht die actionbar)

verwenden onKeyDown-Methode, um overrride-zurück-Aktion
...können Sie einfach diesen code innerhalb onBackPressed(), keine Notwendigkeit für onKeyDown . Aus den docs: Called when the activity has detected the user's press of the back key. The default implementation simply finishes the current activity, but you can override this to do whatever you want. Es muss ein anderes problem für dieses Verhalten.
Sie haben überschrieben onKeyDown für die zurück-Taste? Denn wenn Sie dies getan haben, überall in Ihrem code, Sie möglicherweise nicht true zurückgegeben und onBackPressed ist nicht genannt....
Ihre onBackPressed () - Methode ist gut. Problem gibt ' s nicht
Die Log-und Toast, beides hat nicht funktioniert, aber ich jetzt eingeschaltet, um die onKeyDown-Methode und es funktioniert.

InformationsquelleAutor Steve2955 | 2016-09-16

Schreibe einen Kommentar