Android Back Button kehrt nicht zur vorherigen Aktivität zurück

Ich habe eine App, die zwei Aktivitäten hat: MainActivity und SettingsActivity. Die MainActivity verfügt über ein Menü mit einem Einstellungsmenü. Wenn dieser Menüpunkt geklickt wird, startet er die EinstellungenAktivität mit einer Absicht. Nachdem die Aktivität gestartet ist, klicke ich in die obere linke Ecke und es geschieht nichts. Ich nahm an, seit ich die Aktivität mit einer Absicht begonnen habe, würde der Aktivitätsstapel automatisch verwaltet. Ich möchte zur MainActivity zurückkehren. Bin ich in dieser Annahme falsch?

MainActivity.onMenuItemSelected

public boolean onMenuItemSelected(int featureId, MenuItem item) { int itemID = item.getItemId(); if(itemID == R.id.settings) { Intent intent = new Intent(this, SettingsActivity.class); startActivity(intent); } return true; } 

EinstellungenAktivität

 public class SettingsActivity extends PreferenceActivity { public static final String TEST = "test"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); } } 

  • EditText mit Softtastatur und "Zurück" -Taste
  • Android: Wie simuliere ich zurück
  • Wie kann ich die Navigationsschublade entlassen, um die Back-Home-Icon-Taste zu benutzen?
  • Bestimmen Sie, ob die Aktivität vor der Navigation zurückgekehrt ist
  • Handling zurück drücken bei der Verwendung von Fragmenten in Android
  • Wie kann ich Javascript von Android anrufen?
  • Android webview und loadData, kann ich die rückseitige Taste erhalten, um zum generierten Inhalt zurückzukehren?
  • Android-Back-Taste und MediaController
  • 2 Solutions collect form web for “Android Back Button kehrt nicht zur vorherigen Aktivität zurück”

    Innerhalb deiner SettingsActivity musst du onOptionsItemSelected überschreiben, um die Zurück-Taste in der oberen linken Ecke der Aktionsleiste zu onOptionsItemSelected , um zurückzukehren. Es weiß nicht, dass das, was es braucht, um zu tun. Innerhalb des Falles android.R.id.home Sie einfach rufen finish() . Dies wird Ihre aktuelle Aktivität beenden und du wirst zurück zu MainActivity gehen, die es angefangen hat. Z.B:

     @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: this.finish(); return true; } return super.onOptionsItemSelected(item); } 

    Gerade zur Vollständigkeit, um die Home-Taste zu aktivieren, kannst du folgendes in deiner onCreate() von SettingsActivity hinzufügen:

     getActionBar().setDisplayHomeAsUpEnabled(true); 

    Wie pro docs von setDisplayHomeAsUpEnabled ()

    It is to show the user that selecting home will return one level up rather than to the top level of the app.

    Hoffe das hilft.

    Fügen Sie einfach diese Zeilen in Ihrem OnCreate Methord hinzu

      getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeButtonEnabled(true); 

    Und überschreiben Sie diese Methode, um Funktionalität Ihrer Back-Taste hinzuzufügen:

      @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } else if(id==android.R.id.home) { finish(); return true; } return super.onOptionsItemSelected(item); } 

    Hoffe es hilft dir

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.