10

我正在使用 ActionBarSherlock 库,并按照此处此处建议的确切步骤来启用导航到上一个屏幕。

我的代码如下所示:

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // This callback is used only when mSoloFragment == true (see
    // onActivityCreated above)
    switch (item.getItemId()) {
    case android.R.id.home:
        // App icon in Action Bar clicked; go up
        Intent intent = new Intent(this, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // Reuse the
                                                            // existing
                                                            // instance
        startActivity(intent);

        return true;
    default:
        return super.onOptionsItemSelected(item);
    }

但是 R.id.home 无法识别,并且 home 显示为红色。:-/ 如果我使用本机操作栏,主页声明会将我带到 ids.xml 文件。但是,当我使用 ActionBarSherlock Activity 时,这里没有找到声明。我错过了什么吗?

4

3 回答 3

12

只是替换这个

android.R.id.home

R.id.home

并检查您的代码...运行它

因为

R.layout.*是您提供的布局(例如在 res/layout 中)。

android.R.layout.*是 Android SDK 附带的布局。

于 2013-03-22T08:50:36.173 回答
7

我知道这是一个老问题,但我相信缺少正确的答案。

应该是android.R.id.home因为是平台资源,所以你的代码没问题。

确保您的 minSdkVersion 为 11 或更高,因为home在 11 中引入。

于 2014-01-20T08:29:12.827 回答
1

我记得遇到了这个问题,显然它非常频繁,快速谷歌或通过堆栈溢出搜索应该会给你一些洞察力无论如何检查这个线程R 无法解决 - Android 错误 我很确定你遇到了同样的问题

于 2013-03-22T08:47:48.647 回答