Подтвердить что ты не робот

Кнопка возврата в Actionbarsherlock не возвращается

Когда я нажимаю кнопку "домой", она не возвращается, как я думаю, что это будет делать.

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

}

Я также попытался поймать его с помощью этого метода

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

но это не сработало, я попал в этот метод, но id - это не тот же идентификатор как R.id.abs__home. Итак, как я могу заставить это работать.

Эмулятор, который я использую, имеет версию 2.3 для Android. В остальном все, начиная с actionbarsherlock работает, как и ожидалось.

Синий блок - это кнопка, которую я нажимаю, и нажатием на нее я хочу перейти назад. enter image description here

4b9b3361

Ответ 1

Используйте android.R.id.home, чтобы определить домашний доступ, а не R.id.abs__home. Например, из этот примерный проект, используя 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
  }