您好,我刚刚开始使用Eclipse IDE进行Android开发。

我正在尝试在侧面制作一个幻灯片菜单,在顶部制作一个动作栏,类似于一些流行的应用程序,例如4Square,9GAG,Facebook等。

我希望将Jeremy Feinstein滑动菜单与Action Bar Sherlock库一起使用。我从https://github.com/jfeinstein10/SlidingMenuhttp://actionbarsherlock.com/download.html下载了它们

我目前正在学习如何使用这些库,并尝试运行GitHub的zip文件中提供的示例。我花了几天的时间才能正确导入库,现在示例没有问题。

但是,当我尝试将库导入到自己的项目中时,似乎该项目引用的是不正确的R.java文件。这是代码:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setTitle(mTitleRes);

    // set the Behind View
    setBehindContentView(R.layout.menu_frame);
    if (savedInstanceState == null) {
        FragmentTransaction t = this.getSupportFragmentManager().beginTransaction();
        mFrag = new MenuListFragment();
        t.replace(R.id.menu_frame, mFrag);
        t.commit();
    } else {
        mFrag = (ListFragment)this.getSupportFragmentManager().findFragmentById(R.id.menu_frame);
    }

    // customize the SlidingMenu
    SlidingMenu sm = getSlidingMenu();

    // these 3 lines containing errors:
    sm.setShadowWidthRes(R.dimen.shadow_width);
    sm.setShadowDrawable(R.drawable.shadow);
    sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);

    sm.setFadeDegree(0.35f);
    sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}


上面的3行出现以下错误

shadow_width cannot be resolved or is not a field


此外,对于这些行,

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getSupportMenuInflater().inflate(R.menu.main, menu);
    return true;
}


错误是

main cannot be resolved or is not a field


================================================== ================================

至于导入这两个库的方式,这些是我所做的步骤,我从网络上的不同来源和问题中收集了这些步骤:


导入滑动菜单库

File -> Import -> Android -> Existing Android Code Into Workspace
Browse -> SlidingMenu-master -> library -> Finish

导入动作栏夏洛克库

File -> Import -> Android -> Existing Android Code Into Workspace
Browse -> JakeWharton-ActionBarSherlock-5a15d92 -> actionbarsherlock -> Finish

设置动作栏Sherlock属性

Project -> Properties -> Android -> Project Build Target -> Android 4.0.3

设置滑动菜单属性

Project -> Properties -> Android -> Project Build Target -> Android 4.0.3
Project -> Properties -> Android -> Library -> Add -> Add actionbarsherlock
Project -> Properties -> Project References -> check actionbarsherlock

设置我的项目属性

Project -> Properties -> Android -> Project Build Target -> Android 4.0.3
Project -> Properties -> Android -> Library -> Add -> Add both libraries
Project -> Properties -> Project References -> check both libraries



library -> com.jeremyfeinstein.slidingmenu.lib.app -> SlidingActivity.java
and SlidingFragmentActivity.java


更改

extends SlidingActivity and SlidingFragmentActivity


进入

extends SherlockActivity and SherlockFragmentActivity

删除

android-support-v4.jar


从我自己的项目和actionbarsherlock,对于他们两个,都转到

Project -> Properties -> Java Build Path -> Libraries -> Add JARs
-> library (the slider menu library) -> libs -> android-support-v4.jar

项目清理并重新启动Eclipse


我知道我可能只是犯了一个非常简单的愚蠢错误,但是对您的帮助不胜感激!谢谢!!

最佳答案

当您尝试将示例的Java文件移动到自己的项目中时,可能会忽略其他一些xml文件。它们位于res文件夹中

该问题的解决方案是创建您自己的xml文件,或将示例的xml文件复制到res文件夹中,如下所示:

dimen.xml
drawable/shadow.xml
menu/main.xml

10-07 19:19
查看更多