7

使用找到的开发人员指南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

4

1 回答 1

6

您可能没有使 ABS 活动徽标可点击。添加这个onCreate()

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

此外,如果您还没有这样做,请阅读实现祖先导航,以便您正确导航(忽略他们对 的使用getActionBar(),他们没有使用 ABS,这是实际的 Android API 操作栏方法)。

于 2013-01-23T20:00:45.393 回答