2015-01-06 3 views
6

Quando si utilizza il nuovo Toolbar con la libreria di supporto appcompat, mi sembra che il pulsante Home non funzioni come prima, a meno che non si imposti un menu di opzioni valido. Un semplice e bog un'attività standard:Pulsante barra degli strumenti home non funziona se non è disponibile il menu opzioni

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); 
    } 
} 

Se c'è un menu fisso a onCreateOptionsMenu(), onOptionsItemSelected() sarà chiamato a posto con android.R.id.home e tutto va bene. Tuttavia, se non c'è affatto lo onCreateOptionsMenu() (o è vuoto, restituendo true o chiamando la funzione super), non verrà chiamato il numero onOptionsItemSelected(), quindi non c'è possibilità di prendere il clic sul pulsante Home. Ho anche provato a passare un menu vuoto a onCreateOptionsMenu() ma non è stato d'aiuto.

C'è una soluzione che ci consente di avere un pulsante Home funzionante su pagine che non richiedono un menu di opzioni funzionali?

+0

ho trovato ora questo, è scivolato la mia attenzione in un primo momento perché sono * non * su JB ma KK: http://stackoverflow.com/questions/26859841/homeasup-button-has-no-effect-in-android-4-2-2-with-appcompat-21-0-0?rq=1 –

risposta

0

Si può provare questo ..

toolbar.setNavigationOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
Intent intent =new Intent(Context,<Destination activity); 
startActivity(intent); 
} 
}); 

Spero che vi aiuterà a ..