Schaltfläche “Zurück” in der Aktionsleiste anzeigen

Ich versuche eine Back button in der Action bar anzuzeigen, um die vorherige Seite / Aktivität zu verschieben oder zur Hauptseite (erste Öffnung). Und ich kann es nicht tun.

mein Code.

 ActionBar actionBar = getActionBar(); actionBar.setHomeButtonEnabled(true); 

Der Code befindet sich in onCreate .

    Nun, das ist einfach eine Schaltfläche zurück zu zeigen

     actionBar.setDisplayHomeAsUpEnabled(true); 

    und dann können Sie das Back-Ereignis bei onOptionsItemSelected anpassen

     case android.R.id.home: this.finish(); return true; 

    Ich denke onSupportNavigateUp() ist der beste und einfachste Weg dies zu tun, überprüfen Sie den Code unten.

    Wenn Sie es programmgesteuert onCreate() möchten Fügen Sie diese Zeile in der onCreate() -Methode hinzu

     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

    Hinweis: Stellen Sie sicher, dass die Aktionsleiste nicht null ist.

    Und überschreibe diese Methode

     @Override public boolean onSupportNavigateUp(){ finish(); return true; } 

    das ist es
    ODER Nicht programmgesteuert können Sie der Aktivität in der Manifestdatei eine Meta hinzufügen

      

    Bearbeiten: Wenn Sie AppCompat Activity nicht verwenden, verwenden Sie kein AppCompat , das Sie verwenden können

     getActionBar().setDisplayHomeAsUpEnabled(true); // In `OnCreate();` @Override public boolean onNavigateUp(){ finish(); return true; } 

    Danke an @atariguy für einen Kommentar.

    Die Magie passiert in onOptionsItemSelected .

     @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // app icon in action bar clicked; go home Intent intent = new Intent(this, HomeActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); return true; default: return super.onOptionsItemSelected(item); } } 

    Offizielle Lösung

    Fügen Sie diese zwei Code-Snippets zu Ihrer SubActivity hinzu

     @Override public void onCreate(Bundle savedInstanceState) { ... getActionBar().setDisplayHomeAsUpEnabled(true); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { // Respond to the action bar's Up/Home button case android.R.id.home: NavUtils.navigateUpFromSameTask(this); return true; } return super.onOptionsItemSelected(item); } 

    Fügen Sie Metadaten und parentActivity hinzu, die zur Unterstützung von niedrigerem SDK manifestiert werden sollen.

       ...   ...        

    Referenz hier: http://developer.android.com/training/implementing-navigation/ancestral.html

    Fügen Sie diese Zeilen zu OnCreate () hinzu

     android.support.v7.app.ActionBar actionBar = getSupportActionBar(); actionBar.setHomeButtonEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true); 

    und in onOptionItemSelected

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

    Hoffe, das wird dir helfen ..!

    Probieren Sie diesen Code aus, wenn Sie den Zurück-Button benötigen.

     @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //YOUR CODE getSupportActionBar().setDisplayHomeAsUpEnabled(true); //YOUR CODE } @Override public boolean onOptionsItemSelected(MenuItem item) { onBackPressed(); return true; } 

    onCreate Sie Ihrer onCreate Methode onCreate hinzu:

     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

    Bei der AndroidManifest.xml der übergeordneten Aktivität in der AndroidManifest.xml (die Aktivität, die aufgerufen wird, sobald die Zurück-Schaltfläche in der AndroidManifest.xml gedrückt wird):

    Füge in deiner Definition im Manifest die Zeile hinzu:

     android:parentActivityName="com.example.activities.MyParentActivity" 

    Ich weiß, dass ich etwas spät dran bin, aber ich konnte dieses Problem beheben, indem ich die Dokumente direkt befolge .

    Fügen Sie das Metadaten-Tag zu AndroidManifest.xml (so weiß das System)

         

    Aktivieren Sie als Nächstes die Zurück-Schaltfläche in Ihrer MainActivity

      @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_child); // my_child_toolbar is defined in the layout file Toolbar myChildToolbar = (Toolbar) findViewById(R.id.my_child_toolbar); setSupportActionBar(myChildToolbar); // Get a support ActionBar corresponding to this toolbar ActionBar ab = getSupportActionBar(); // Enable the Up button ab.setDisplayHomeAsUpEnabled(true); } 

    Und du wirst alles vorbereitet sein!

    Quelle: Android-Entwicklerdokumentation

    Ich weiß, dass die oben genannten sind viele hilfreiche Lösungen, aber dieses Mal lese ich diesen Artikel (aktuelle Android Studio 2.1.2 mit SDK 23) einige Methode oben funktioniert nicht.

    Unten ist meine Lösung für Unteraktivität MapsActivity

    Zuerst müssen Sie parentActivity hinzufügen

    AndroidManifest.xml

    so was :

      ...   ...        

    Zweitens, stellen Sie sicher, dass Ihre AppCompatActivity und nicht FragmentActivity erweitert.

    Drittens überschreiben Sie onOptionsItemSelected() -Methode

     @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // app icon action bar is clicked; go to parent activity this.finish(); return true; case R.id.action_settings: return true; default: return super.onOptionsItemSelected(item); } } 

    Hoffe das wird helfen!

    Um dies zu erreichen, gibt es nur zwei Schritte,

    Schritt 1: Gehen Sie zu AndroidManifest.xml und fügen Sie diesen Parameter im -Tag hinzu – android:parentActivityName=".home.HomeActivity"

    Beispiel:

      

    Schritt 2: ActivityDetail Sie in ActivityDetail Ihre action für die vorherige Seite / Aktivität hinzu

    Beispiel:

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

    in onCreate Methode schreiben-

     Toolbar toolbar = findViewById(R.id.tool); setSupportActionBar(toolbar); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); } } @Override public boolean onSupportNavigateUp() { onBackPressed(); return true; } @Override public void onBackPressed() { super.onBackPressed(); startActivity(new Intent(ActivityOne.this, ActivityTwo.class)); finish(); } 

    und das ist die XML-Datei –

      

    und in styles.xml ändern Sie es in

     Theme.AppCompat.Light.NoActionBar 

    Das ist alles, was wir tun müssen.

    Probieren Sie dies, in Ihrem onCreate ()

      getActionBar().setHomeButtonEnabled(true); getActionBar().setDisplayHomeAsUpEnabled(true); 

    Und für Klickevent,

     @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // app icon in action bar clicked; goto parent activity. this.finish(); return true; default: return super.onOptionsItemSelected(item); } } 

    Ich triggerse mich auf diese Weise

     @Override public boolean onOptionsItemSelected(MenuItem item){ switch (item.getItemId()) { case android.R.id.home: onBackPressed(); finish(); return true; default: return super.onOptionsItemSelected(item); } } @Override public void onBackPressed(){ Intent backMainTest = new Intent(this,MainTest.class); startActivity(backMainTest); finish(); } 

    mein Arbeitscode, um Bildschirm zurückzugehen.

     @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: Toast.makeText(getApplicationContext(), "Home Clicked", Toast.LENGTH_LONG).show(); // go to previous activity onBackPressed(); return true; } return super.onOptionsItemSelected(item); } 
      public void initToolbar(){ //this set back button getSupportActionBar().setDisplayHomeAsUpEnabled(true); //this is set custom image to back button getSupportActionBar().setHomeAsUpIndicator(R.drawable.back_btn_image); } //this method call when you press back button @Override public boolean onSupportNavigateUp(){ finish(); return true; } 
     ActionBar actionBar=getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: onBackPressed(); return true; } return super.onOptionsItemSelected(item); }