ActionBarCompat - 应用程序图标操作(单击)无法在4.0设备上运行

时间:2011-11-06 15:49:05

标签: android android-actionbar

我在Android ActionBarCompat项目中遇到此问题:在使用Android 4.0的模拟器上,单击应用程序图标不会导致任何onOptionsItemSelected事件,而它适用于所有其他操作系统版本。

非常感谢任何输入!

2 个答案:

答案 0 :(得分:22)

您是否从应用图标中看到任何触摸反馈? (按下它时会发光吗?)

由于许多活动不使用操作栏主页按钮,因此在Android 4.0上运行的目标API 14+的应用程序中,默认情况下会禁用它。 (这是因为用户不会尝试按下它,看到它发光,并想知道为什么没有发生。)想要使用它的应用程序应该调用ActionBar#setHomeButtonEnabled(true)

我们应该修改ActionBarCompat示例以更清楚地表现出来。让您启动并运行的一种简单方法是修改ActionBarHelperICS.java并添加以下内容:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mActivity.getActionBar().setHomeButtonEnabled(true);
}

在您想要更多控制打开和关闭此功能的应用中,您可能需要进行进一步更改。

答案 1 :(得分:3)

我也有这个问题。这段代码对我有用:

public void onCreate(Bundle savedInstanceState) {
    ...
    if (android.os.Build.VERSION.SDK_INT >= 11) {
        //noinspection ConstantConditions
        getActionBar().setHomeButtonEnabled(true);
    } else {
        getSupportActionBar().setHomeButtonEnabled(true);
    }
}

一些额外信息:minSdkVersion="7" targetSdkVersion="18"。这是我项目的LAUNCHER活动,因此它没有父活动。在其他活动中使用setDisplayHomeAsUpEnabled(true)工作得很好。