2016-03-05 37 views

Odpowiedz

27

Najpierw upewnij jeden toolbar.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:local="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:minHeight="?attr/actionBarSize" 
    android:background="@color/colorPrimary" 
    local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    local:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

następnie umieścić go w activity_main.xml jak w ten sposób:

<LinearLayout 
    android:id="@+id/container_toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

    <include 
     android:id="@+id/toolbar" 
     layout="@layout/toolbar" /> 

</LinearLayout> 

następnie w pliku MainActivity.java, umieścić ten kod:

mToolbar = (Toolbar) findViewById(R.id.toolbar); 
setSupportActionBar(mToolbar); 
getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
getSupportActionBar().setDisplayShowHomeEnabled(true); 
getSupportActionBar().setTitle("MyTitle"); 

Aby dodać słuchacza na tylnej prasy, użyj następującej metody:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case android.R.id.home: 
      // todo: goto back activity from here 

      Intent intent = new Intent(CurrentActivity.this, MainActivity.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(intent); 
      finish(); 
      return true; 

     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 
+0

@AbhijeetMallick Poddaj głosowanie zamiast podziękowań! też pomoże innym. –

0

Dodaj ten

Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar); 
setSupportActionBar(toolbar); 
getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
getSupportActionBar().setDisplayShowHomeEnabled(true); 

aw onOptionsItemSelected dodaj

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

Sprawdź to

Display Back Arrow on Toolbar Android

http://developer.android.com/intl/es/training/implementing-navigation/ancestral.html

4

Jeśli chcesz wiedzieć, kiedy dom zostanie kliknięty jest AppCompatActivity należy spróbować go tak: użyć tego kodu:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
setSupportActionBar(toolbar); 
getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
getSupportActionBar().setDisplayShowHomeEnabled(true); 

Posłuchaj dla zdarzeń kliknięcia android.R.id.home jak zwykle:

@Override 
public boolean onOptionsItemSelected(MenuItem menuItem) { 
    if (menuItem.getItemId() == android.R.id.home) { 
     Intent intent = new Intent(CurrentActivity.this, MainActivity.class); 
     startActivity(intent); 
     finish(); 
    } 
    return super.onOptionsItemSelected(menuItem); 
} 
4

Jeśli używasz domyślnego przycisku wstecz dla Androida za pomocą

getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

Następnie zastąpić onOptionsItemSelected jak

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case android.R.id.home: 
      //do whatever 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 
3
Toolbar mToolbar= (Toolbar) findViewById(R.id.toolbar); 
setSupportActionBar(mToolbar); 
getSupportActionBar().setDisplayHomeAsUpEnabled(true);  
mToolbar.setNavigationOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     // perform whatever you want on back arrow click 
    } 
});