有没有办法在一个项目中使用Roboguice和ActionbarSherlock?

时间:2011-10-15 15:53:51

标签: android android-library actionbarsherlock

我想在一个项目中使用标题中提到的库。

然而,两者都需要我的活动从一个特殊的Activity类扩展:在Roboguice的情况下它是RoboAcitivity,它是ActionbarSherlock的FragmentActivity。

ActionbarSherlock扩展了兼容性库,这很好,因为我还需要使用片段,而项目级别< API级别11。

有没有人成功这样做过?由于Java不支持多重继承(通常这是一件好事),我试图在ActionbarSherlock项目中使用FragmentActivity来扩展RoboActivity而不是标准的Activity。但我无法通过这种方式进行编译。

控制台输出的一部分是:

[2011-10-15 17:46:31 - RetainFragmentTest2] /Users/scythe/JavaLibs/JakeWharton-ActionBarSherlock-a4855d0/library/res/values-v11/abs__styles.xml:170: error: Error: No resource found that matches the given name: attr 'android:logo'.
[2011-10-15 17:46:31 - RetainFragmentTest2] /Users/scythe/JavaLibs/JakeWharton-ActionBarSherlock-a4855d0/library/res/values-v11/abs__styles.xml:171: error: Error: No resource found that matches the given name: attr 'android:navigationMode'.
[2011-10-15 17:46:31 - RetainFragmentTest2] /Users/scythe/JavaLibs/JakeWharton-ActionBarSherlock-a4855d0/library/res/values-v11/abs__styles.xml:174: error: Error: No resource found that matches the given name: attr 'android:progressBarPadding'.
[2011-10-15 17:46:31 - RetainFragmentTest2] /Users/scythe/JavaLibs/JakeWharton-ActionBarSherlock-a4855d0/library/res/values-v11/abs__styles.xml:176: error: Error: No resource found that matches the given name: attr 'android:subtitle'.
[2011-10-15 17:46:31 - RetainFragmentTest2] /Users/scythe/JavaLibs/JakeWharton-ActionBarSherlock-a4855d0/library/res/values-v11/abs__styles.xml:177: error: Error: No resource found that matches the given name: attr 'android:subtitleTextStyle'.
[2011-10-15 17:46:31 - RetainFragmentTest2] /Users/scythe/JavaLibs/JakeWharton-ActionBarSherlock-a4855d0/library/res/values-v11/abs__styles.xml:173: error: Error: No resource found that matches the given name: attr 'android:titleTextStyle'.

6 个答案:

答案 0 :(得分:8)

答案 1 :(得分:6)

除了兼容性库的问题之外,您可能也很难如何从RoboActivitySherlockActivity扩展您的活动 - 在Java中,您没有多重继承: - )

您解决此问题的方法是手工制作自己的RoboSherlockActivity或使用 Roberto Tyley's library

请参阅example

答案 2 :(得分:3)

我只想简单地添加一下'将roboguice-sherlock添加到你的maven pom中它神奇地起作用。

    <dependency>
        <groupId>com.github.rtyley</groupId>
        <artifactId>roboguice-sherlock</artifactId>
        <version>1.5</version>
    </dependency>

答案 3 :(得分:1)

另一个例子刚刚在github上发布。它还使用了大量其他好工具。查看https://github.com/github/gauges-android

答案 4 :(得分:0)

可以在此处找到工作示例和实用程序的另一个示例:http://search.maven.org/#artifactdetails%7Ccom.github.rtyley%7Croboguice-sherlock%7C1.3%7Cjar

答案 5 :(得分:0)

RoboGuice 3开始,roboguice-sherlock框架为included in the RoboGuice distribution。 该类的命名方案仍然是same

  

这个项目中的所有类都与RoboGuice的名称相同,在'Robo'之后插入'Sherlock',即Robo Sherlock ListFragment

除了这些类现在位于roboguice.activity包中 例如,请参阅RoboSherlockActivity