Wie kann ich eine benutzerdefinierte onClickListener
Schaltfläche für die Home-Schaltfläche der Aktionsleiste implementieren ?
Ich habe bereits eine getSupportActionBar().setDisplayHomeAsUpEnabled(true);
und jetzt möchte ich den Benutzer zu einer bestimmten Aktivität umleiten, falls auf die Home-Schaltfläche geklickt wird.
Ich habe versucht mit:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
item.setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
Intent i = new Intent();
i.setClass(BestemmingActivity.this, StartActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
return true;
}
});
default:
return super.onOptionsItemSelected(item);
}
}
aber es tritt nie in die onMenuItemClick
.
Grundsätzlich geschieht dies genau wie in diesem Link, aber es wird immer noch nicht in den Listener eingegeben.
return true;
return true;
am Ende desif
Blocks, dann ist es richtigIch verwende den actionBarSherlock . Nachdem wir festgelegt
supportActionBar.setHomeButtonEnabled(true);
haben, können wir die onMenuItemSelected-Methode überschreiben:
Ich hoffe diese Arbeit für dich ~~~ viel Glück
quelle
Wenn wir die vom System angegebene Aktionsleiste verwenden, funktioniert der folgende Code einwandfrei
quelle
Behoben: keine Notwendigkeit, a zu verwenden
setOnMenuItemClickListener
. Durch einfaches Drücken der Taste wird die Aktivität durch die Absicht erstellt und gestartet.Vielen Dank an alle für Ihre Hilfe!
quelle
onOptionsItemSelected()
automatisch um Menü-Listener und Anrufe . Keine manuelle Installation erforderlich (dies kann tatsächlich zu Problemen führen).Antworten in der Hälfte des Geschehens. Wenn dies
onOptionsItemSelected
nicht derhomeAsUp
Fall ist, wechselt die Steuertaste , wenn die übergeordnete Aktivität im System manifest.xml festgelegt wird, zur übergeordneten Aktivität. Verwenden Sie dies im Aktivitäts-Tag wie folgt:quelle
Sie müssen die Home-Aktion explizit aktivieren, wenn Sie auf ICS ausgeführt werden. Aus den Dokumenten :
quelle
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
und eingetSupportActionBar().setHomeButtonEnabled(true);
Der beste Weg, um die Aktionsleiste onClickListener anzupassen, ist onSupportNavigateUp ()
Dieser Code ist ein hilfreicher Link, um dem Code zu helfen
quelle
Sie sollten das Onride onOptionsItemSelected löschen und Ihr onCreateOptionsMenu mit diesem Code replizieren
quelle