Java Android API-8的导航抽屉

Java Android API-8的导航抽屉,java,android,animation,layout,Java,Android,Animation,Layout,我正在实现一个像FB应用程序一样使用“侧菜单”的应用程序。 “”是为运行API>11的应用程序定制的,我的应用程序可供任何设备使用,即使API

我正在实现一个像FB应用程序一样使用“侧菜单”的应用程序。 “”是为运行API>11的应用程序定制的,我的应用程序可供任何设备使用,即使API<11,因此,我使用的是
ActionBarSherloc
,并用Sherloc等价物替换了正常的
菜单
MenuItem
,以及
MenuInflater
,和扩展的
SherlocFragmentActivity

但是现在,我仍然在“”方法中遇到一个错误:

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // The action bar home/up action should open or close the drawer.
        // ActionBarDrawerToggle will take care of this.
        if (mDrawerToggle.onOptionsItemSelected((android.view.MenuItem) item)) {
            return true;
        }
        // Handle action buttons
        switch (item.getItemId()) {
        case R.id.action_websearch:
            // create intent to perform web search for this planet
            Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
            intent.putExtra(SearchManager.QUERY, getSupportActionBar()
                    .getTitle());
            // catch event that there's no activity to handle intent
            if (intent.resolveActivity(getPackageManager()) != null) {
                startActivity(intent);
            } else {
                Toast.makeText(this, R.string.app_not_available,
                        Toast.LENGTH_LONG).show();
            }
            return true;
        default:
            return super.onOptionsItemSelected(item);
        }
    }
在“如果陈述”中

如果我使用了“(android.view.MenuItem)项)”…该方法会引发该类型的异常,如果我将其替换为“com.actionbarsherlock.view.MenuItem”…该方法仍会出现错误“ActionBarDrawerToggle类型中的onOptions ItemSelected(MenuItem)方法不适用于参数(MenuItem)

有什么帮助吗。。?!
提前感谢,

ActionBarSherlock是Android包含的兼容性库的包装器。您当然可以使用ABS,因为它简化了操作栏的处理,但这并不是只做NavigationDrawer所必需的

如果您有最新的KitKat(sdk 19),请查看您的
/extras/android/support/v4/
文件夹,其中有一个
android-support-v4.jar
,其中包含适当的
DrawerLayout
,可以完全按照您的意愿进行操作。如果在项目中包含此库,则可以正常运行

演示在不使用ABS的情况下使用NavigationDrawer。您必须对清单进行两次更改,才能使其在API v8上运行

  • 更改版本:
  • 删除主题:
    android:theme=“@android:style/theme.Holo.Light.DarkActionBar”

  • 如果您使用的是支持库,请尝试使用getSupportMenuInflater()和getSupportActionBar()而不是常规方法。

    我想您可能需要快速查看官方支持库,其中包括API<11的导航抽屉、片段和操作栏支持。请参阅并@MagicMicky我这样做了,但我仍然不知道“getActionBar()”的最佳替代品是什么。如果您使用的是AppCompat,则需要调用getSupportActionBar(),而不是getActionBar()。@MagicMicky我扩展了“Activity”并调用了“getSupportActionBar()”。这是一个错误“类型MainActivity的方法getSupportActionBar()未定义”…我是否需要扩展“android.app.Activity”之外的内容?是的,您需要扩展ActionBarActivity。请确保在
    build.gradle
    中添加appCompat作为依赖项。有关appCompat及其actionbar的更多信息,请阅读此文章:
    if (mDrawerToggle.onOptionsItemSelected((android.view.MenuItem) item)) {
                return true;
            }