使用
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,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 ); }
解决方法
您可能无法启用ABS活动徽标.在onCreate()中添加
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
此外,如果您还没有这样做,请阅读Implementing Ancestral Navigation,以便正确导航(忽略他们使用getActionBar(),他们没有使用ABS,这是实际的Android API Action Bar方法).