25

我目前正在开发一个 Android 应用程序。我想使用操作栏中的应用程序图标导航到“主页”活动。我在此页面上读到,需要做的就是添加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" >
4

3 回答 3

38

对于面向 API 级别 14 及以上的包,您需要通过调用启用主页按钮setHomeButtonEnabled()

在您的 onCreate 中,添加以下内容:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
    getActionBar().setHomeButtonEnabled(true);
}
于 2012-01-21T13:02:17.820 回答
4

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

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
    getActionBar().setHomeButtonEnabled(true);
}
getSupportActionBar().setHomeButtonEnabled(true);
于 2013-11-11T17:07:49.837 回答
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 上。因为你的 home 按钮放在 secondActivity 上,而不是 HomeActivity

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

希望这对你有帮助

于 2017-01-07T20:36:45.537 回答