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