【问题标题】:Exact procedure to add "jfeinstein10 / SlidingMenu" in android project在android项目中添加“jfeinstein10 / SlidingMenu”的确切过程
【发布时间】:2012-12-27 15:50:34
【问题描述】:

我对android完全陌生,我正在尝试实现Sliding Menu having ListView with Swipe Gesture,通过一些搜索我发现https://github.com/jfeinstein10/SlidingMenu 正是我想要的,

有很多与此相关的问题正在指导如何将此库与项目集成,但没有一个问题适合像我这样的新手。 github上给出的程序也不详细,我只知道如何添加.jar文件但是这个.zip和其他东西对我来说是全新的

这是我迄今为止所做的;

  1. 从上面的链接下载 zip
  2. 提取到文件夹的链接
  3. 在 Eclipse File->import->existing project into work-space..

现在它显示包library.src.com.slidingmenu.lib.app中的许多错误

例如

The declared package "com.slidingmenu.lib.app" does not match the expected package "library.src.com.slidingmenu.lib.app"

现在我不知道该怎么办......

请有人指导我如何在项目中集成和使用这个库的正确详细过程。

谢谢!

【问题讨论】:

  • 你用的是哪个eclipse版本?
  • @Saurabh Bayani eclipse ganymede

标签: android android-layout


【解决方案1】:

好吧,花了 3 天时间解决同样的问题,我找到了这件事的确切程序。 github 上的指南当然不适合我们这样的入门级人员,也没有这样的“分步教程”,所以需要时间。

重要提示:我没有包含“Sherlock ActionBar”库,因为我想保持简单

  • 现在打开你的eclipseFile -> Import -> Android -> Existing Android Code Into Workspace,浏览到你的文件夹很可能是“SlidingMenu-master”,你应该看到以下内容

点击Finish,如果 Eclipse 显示类似Unable to resolve target 的错误,则通过Right Click on project -> Properties -> Android 更改您的目标,并检查您的SDK 是否有最新的google API

  • 添加Dependency,右击project -> properties -> android -> library -> add -> SlidingMenuActivity,并清除两个项目。

  • 在您的res -> layout 中添加名为menu_frame 的新XML 布局并将以下内容放入其中 把Frame Layoutlist view放进去。

  • 还在您的 mainActivity XML 文件中添加 ListView

  • 现在是时候创建“菜单”了,在 onCreate()setContentView(R.layout.activity_main) 之后编写以下代码。

    SlidingMenu menu;
    menu = new SlidingMenu(this);
    menu.setMode(SlidingMenu.LEFT);
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    menu.setShadowWidth(5);
    menu.setFadeDegree(0.0f);
    menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
    menu.setBehindWidth(200);
    menu.setMenu(R.layout.menu_frame);
    
  • 在显示错误的行按ctrl+1 并导入com.slidingmenu.lib.SlidingMenu;"

  • 运行您的项目,您应该会看到左侧出现的菜单

  • 现在下一个任务是为您的两个 ListView(即主屏幕和菜单)添加 adapterlistener

有关创建菜单时使用的功能的信息,您可以参考库提供的示例应用程序或谷歌它们,有很多可用信息。

还要感谢“Jeremy Feinstein”提供了这么棒的图书馆

【讨论】:

  • @Saurabh Bayani,谢谢!这正是我要找的
  • 嗨,教程的坦克,我如何为 ListView(Menu) 添加项目和 Listner 是否可以在主要活动中?
  • @mahdi,是的!有可能的。菜单中的列表视图被视为与您的活动中的普通列表视图相同。所以程序也是一样的,只需 google 将侦听器添加到列表视图并用您的列表视图替换该列表视图的名称,您就完成了!
  • @SaurabhBayani,我使用此代码将项目添加到我的 ListViews(菜单和主屏幕),但它仅适用于主屏幕!
【解决方案2】:

我相信你用不同的包名导入了包。

声明的包“com.slidingmenu.lib.app”与预期的包“library.src.com.slidingmenu.lib.app”不匹配

将其从 com.slidingmenu.lib.app 重命名为 library.src.com.slidingmenu.lib.app,看看是否能解决问题。

【讨论】:

    【解决方案3】:

    您只需在“库”文件夹中导入项目

    【讨论】:

    • 你能再具体一点吗?我的意思是那个 zip 文件夹中有很多文件夹,我应该在我的 lib 文件夹中导入哪个文件夹?
    • 就像@john44 告诉你的那样,从 jFeinStein 解压缩 SlidingMenu,然后从解压缩的文件夹中只导入文件夹“library”。将其定义为属性中的库并将其导入您的项目中。导入示例以更好地理解不同的可能性可能很有用,但实际上,对于开始它可能太混乱,最好采用顶部解释的方式。
    【解决方案4】:

    我使用此代码将项目添加到我的 ListViews(菜单和主屏幕),但它仅适用于主屏幕

    final Context context = this ;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        ListView lv = (ListView) findViewById(R.id.listView1);
        String[] items = new String[]{"xxx","xxx","xxx","xxx"};
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(context ,android.R.layout.simple_list_item_1, android.R.id.text1, items); 
        lv.setAdapter(adapter);
    
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = inflater.inflate(R.layout.menu_frame, null);
        ListView lv2 = (ListView) view.findViewById(R.id.listView2);
        TextView tv2 = (TextView) view.findViewById(R.id.textView2);
        tv2.setText("Hello Mahdi");
        String[] items2 = new String[]{"xxx","xxx","xxx","xxx"};
        ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(context ,android.R.layout.simple_list_item_1, android.R.id.text1, items2); 
        lv2.setAdapter(adapter2);
    
    
        SlidingMenu menu;
        menu = new SlidingMenu(this);
        menu.setMode(SlidingMenu.LEFT);
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
        menu.setShadowWidth(5);
        menu.setFadeDegree(0.0f);
        menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
        menu.setBehindWidth(200);
        menu.setMenu(R.layout.menu_frame);
    }
    

    【讨论】:

    • 尝试在menu.setMenu()之后添加您的适配器。
    • @mahdi 你能进一步解释一下吗,我正在寻找类似的东西,但不能完全理解..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多