单击应用程序图标不会触发onOptionsItemSelected()

时间:2012-01-21 12:58:15

标签: android android-actionbar android-homebutton

我目前正在开发Android应用。我想使用操作栏中的应用程序图标导航到“主页”活动。我在this页面上看到,所有需要做的就是添加onOptionsItemSelected并查找ID android.R.id.home

这是我在我的活动中实施的代码,我想按应用图标返回HomeActivity

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

然而,没有任何反应。调试时,我可以看到单击图标根本不会触发onOptionsItemSelected()。我必须在某个地方用图标做点什么吗?截至目前,它都是默认值,仅在AndroidManifest.xml

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >

3 个答案:

答案 0 :(得分:39)

对于目标为API级别14的软件包,您需要通过调用setHomeButtonEnabled()启用主页按钮

在onCreate中,添加以下内容:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
    getActionBar().setHomeButtonEnabled(true);
}

答案 1 :(得分:4)

如果您使用Android新支持操作栏(AppCompat),则需要同时拨打两个电话。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
    getActionBar().setHomeButtonEnabled(true);
}
getSupportActionBar().setHomeButtonEnabled(true);

答案 2 :(得分:0)

我不知道我们是否有同样的问题。

但是,我遇到了这个问题,现在已经解决了......

你添加

case android.R.id.home:
    Intent intent = new Intent(this, HomeActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(intent);
    return true;
HomeActivity中的

? 这是假的..

你应该把这些代码放在你的secondActivity上.. 因为你的homeActivity上的主页按钮,而不是HomeActivity

case android.R.id.home:
     NavUtils.navigateUpFromSameTask(this);
     true;

希望这可以帮助你