Использование значка в левом верхнем углу ActionBarSherlock для навигации

Используя руководство для разработчиков, найденное here , я пытаюсь перевести мой значок обратно на главный экран. В настоящее время у меня есть кнопка, которая делает это, и копирует и вставляет код в метод onOptionsItemSelected() . Однако нажатие на значок никогда ничего не делает. Разве это разница в ActionBar и ActionBarSherlock?

Это код, приведенный в качестве примера:

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // app icon in action bar clicked; go home Intent intent = new Intent(this, HomeActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); return true; default: return super.onOptionsItemSelected(item); } } 

Это код, который я использую:

 public boolean onOptionsItemSelected( MenuItem item ) { switch( item.getItemId() ) { case R.id.mainTopBluetoothState: Toast.makeText( this, "BluetoothState", Toast.LENGTH_SHORT ).show(); return true; case R.id.mainTopAppState: Toast.makeText( this, "BluetoothState", Toast.LENGTH_SHORT ).show(); return true; case android.R.id.home: Log.i( "In Home", "In Home" ); killToasts(); dispatchKeyEvent(new KeyEvent( KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK )); finish(); return true; } return super.onOptionsItemSelected( item ); } 

Когда я нажимаю значок, ничего не происходит. Вызов Log в коде не отображается в моем LogCat .

Solutions Collecting From Web of "Использование значка в левом верхнем углу ActionBarSherlock для навигации"

Вероятно, вы не можете активировать логотип активности ABS. Добавьте это в onCreate()

 getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

Кроме того, если вы еще этого не сделали, прочитайте « getActionBar() в getActionBar() навигацию», чтобы правильно перемещаться (игнорируйте использование getActionBar() , они не используют АБС, и это фактический метод Action API для Android API).