2013-07-12 2 views
0

Я играю с библиотекой sherlockactionbar, есть проблема, которая заключается в том, что кнопка вверх не будет работать на API 10. Значок вверх может отображаться на панели действий, но он не будет реагировать на мое нажатие. В более высоком API, таком как 16, он функционирует так, как ожидалось, без проблем. Я пробовал несколько решений, с которыми мне приходилось сталкиваться, но никто из них не работает. Ниже приведена одна из них.Кнопка SherlockActionBar вверх не будет работать на API 10

switch (item.getItemId()) { 
    case android.R.id.home: 

    NavUtils.navigateUpTo(this, new Intent(this, test.class)); 
    return true; 

ответ

0

Убедитесь, что этот набор:

getSupportActionBar().setHomeButtonEnabled(true); 
getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

И что ваш переключатель находится в этом методе:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    super.onOptionsItemSelected(item); 

    switch (item.getItemId()) { 
    case android.R.id.home: 
     /* Do Something //*/ 
     return true; 
    default: 
     return false; 
    } 
} 
+0

На самом деле, это мой экран настроек, который расширяет SherlockPreferenceActivity. Я узнал только сейчас, что когда в устройствах 4.xx все, что вам нужно сделать, это добавить «getSupportActionBar(). SetDisplayHomeAsUpEnabled (true);», кнопка «вверх» будет работать, НЕ включайте «onOptionsItemSelected», чтобы посмотреть андроид. R.id.home, иначе он не будет работать снова. Но, наоборот, на более низком API-устройстве, таком как мой 2.3.6, вы должны включить «getSupportActionBar(). SetDisplayHomeAsUpEnabled (true)» и «NavUtils.navigateUpTo (это новый Intent (this, test.class)»; в «onOptionsItemSelected», чтобы перейти к своему родителю. –

+0

@TonyTong, если это так, то я думаю, что лучше всего будет называть «super.onOptionsItemSelected (MenuItem)» перед тем, как перейти через коммутатор, а не по умолчанию. Таким образом, это будет работать и для более ранних версий. Я предполагаю, что ActionBarSherlock переопределяет сам onOptionsItemSelected (MenuItem), поэтому мы должны назвать суперкласс. Я отредактирую свой ответ. – Tonithy

Смежные вопросы