Bei Verwendung der neuen Toolbar
mit der appcompat-Supportbibliothek scheint mir die Home-Schaltfläche nicht mehr so zu funktionieren, wie Sie es zuvor festgelegt haben, es sei denn, Sie legen ein gültiges Optionsmenü fest. Eine einfache und Moorstandardaktivität:Symbolleisten-Home-Taste funktioniert nicht, wenn kein Optionsmenü vorhanden ist
public class MyActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.some_page);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ActionBar bar = getSupportActionBar();
bar.setHomeButtonEnabled(true);
bar.setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// getMenuInflater().inflate(R.menu.some_menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed() or finish() or whatever();
break;
}
return super.onOptionsItemSelected(item);
}
}
Wenn ein Menü in onCreateOptionsMenu()
gesetzt ist, onOptionsItemSelected()
wird alles in Ordnung mit android.R.id.home
aufgerufen werden und alles ist in Ordnung. Wenn es jedoch überhaupt keinen onCreateOptionsMenu()
gibt (oder leer ist, der entweder true
zurückgibt oder die super
-Funktion aufruft), wird onOptionsItemSelected()
überhaupt nicht aufgerufen, daher gibt es keine Chance, den Klick auf die Home-Schaltfläche zu erfassen. Ich habe sogar versucht, ein leeres Menü an onCreateOptionsMenu()
zu übergeben, aber es hat nicht geholfen.
Gibt es eine Problemumgehung, die es uns ermöglicht, eine funktionierende Home-Schaltfläche auf Seiten zu haben, die kein funktionales Optionsmenü benötigen?
ich das jetzt gefunden, schlüpfte sie meine Aufmerksamkeit auf den ersten, weil ich * nicht * auf JB aber KK: http://stackoverflow.com/questions/26859841/homeasup-button-has-no-effect-in-android-4-2-2-with-appcompat-21-0-0?rq=1 –