ActionBarSherlock:OnOptionsItemSelected无法识别R.id.home

时间:2013-03-22 08:31:35

标签: android android-activity actionbarsherlock

我正在使用ActionBarSherlock库,我按照建议herehere的具体步骤启用导航到上一个屏幕。

我的代码如下所示:

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时找不到声明。我错过了什么吗?

3 个答案:

答案 0 :(得分:12)

只需替换此

android.R.id.home

R.id.home

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

因为

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

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

答案 1 :(得分:7)

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

它应该是android.R.id.home因为它是一个平台资源,所以你的代码很好。

确保自11年引入home以来,你的minSdkVersion为11或更高。

答案 2 :(得分:1)

我记得碰到这个问题,显然它经常快速谷歌或搜索堆栈溢出应该给你一些见解,无论如何检查这个线程R cannot be resolved - Android error 我很确定你遇到了同样的问题