в моем MainActivity, который простирается от AppCompatActivity, я хочу, чтобы переопределить onBackPressed метод следующим образом:Android onBackPressed() не называется?
@Override
public void onBackPressed() {
Log.d("MainActivity","onBackPressed");
Toast.makeText(getApplicationContext(),"onBackPressed",Toast.LENGTH_SHORT).show();
}
но onBackPressed не дозвонились. Как бы то ни было, если я не переопределяю onBackPressed, приложение закрывается, когда я нажимаю на него, и если я его переопределяю, это не так.
Остальная часть моей деятельности выглядит следующим образом:
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: Я говорю о аппаратно-BackButton (а не ActionBar один)
использовать onKeyDown метод, чтобы переопределить обратное действие – siddhesh
... вы можете легко поместить этот код внутри 'onBackPressed()', не нужно 'onKeyDown'. Из документов: «Вызывается, когда активность обнаруживает нажатие на клавишу пользователя. Реализация по умолчанию просто завершает текущую активность, но вы можете переопределить ее, чтобы делать все, что хотите. «Для этого поведения должна быть какая-то другая проблема. – Opiatefuchs
@Steve: У вас есть чрезмерная кнопка 'onKeyDown' для возврата? Потому что, если вы сделали это где-нибудь в своем коде, возможно, вы не вернули true и 'onBackPressed' не вызывается .... – Opiatefuchs