2012-05-04 14 views
11

Po naciśnięciu przycisku home nie cofa się, tak jak myślę, że to zrobi.Przycisk powrotu Actionbarsherlock nie wraca

public class TotalOverview extends SherlockActivity { 

public void onCreate(Bundle savedInstanceState) { 
    setTheme(R.style.Theme_Sherlock);  
    super.onCreate(savedInstanceState);   
    //requestWindowFeature(Window.FEATURE_PROGRESS); 

    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportActionBar().setHomeButtonEnabled(true); 
    setContentView(R.layout.main); 
    //getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportActionBar().setHomeButtonEnabled(true); 

} 

Próbowałem też wzrok go z tej metody

public boolean onOptionsItemSelected(MenuItem item) 
{ 
    boolean toReturn = false; 
    int id = item.getItemId(); 
    if(id == R.id.abs__home) 
    { 
     toReturn = true; 
    } 
    return toReturn; 
} 

ale to nie działa zrobiłem dostać się do tej metody, ale id nie jest taki sam jak id R.id.abs__home . Jak mogę to uruchomić?

Emulator, którego używam, ma wersję Androida 2.3.1. Dla reszty wszystko z akcji akcji działa zgodnie z oczekiwaniami.

Niebieski blok to przycisk, który klikam, i kliknięcie, które chcę cofnąć. enter image description here

Odpowiedz

43

Użyj android.R.id.home, aby wykryć afordancję domu, a nie R.id.abs__home. Na przykład, od this sample project, używając ABS 4.0.2:

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case android.R.id.home: 
     pager.setCurrentItem(0, false); 
     return(true); 

    // more code here for other cases 
    } 
+2

Próbowałem, ale to nie pomogło, ale dzięki za wysiłek. – mariomario

+0

@mariomario: To działa dla mnie. Zobacz zaktualizowaną odpowiedź. – CommonsWare

+0

Dobrze, rozumiem teraz, teraz muszę tylko wysłać to do poprzedniej akcji. Więc dziękuję. – mariomario

Powiązane problemy