Есть ли способ использовать Roboguice и ActionbarSherlock в одном проекте?

Я хотел бы использовать библиотеки, упомянутые в заголовке, в одном проекте.

Однако в обоих случаях мои действия должны расширяться из специального класса Activity: в случае с Roboguice это RoboAcitivity, а для ActionbarSherlock — FragmentActivity.

ActionbarSherlock расширяет библиотеку совместимости, что приятно, ведь мне тоже нужно использовать фрагменты, а уровень проекта s ‹ API level 11.

Кому-нибудь удалось это сделать? Так как Java не поддерживает множественное наследование (что обычно хорошо), я попытался сделать FragmentActivity в проекте ActionbarSherlock для расширения 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'.

person Zsombor Erdődy-Nagy    schedule 15.10.2011    source источник
comment
Я думаю, вы слишком жадны: P Но я чувствую, что ваша проблема в том, что у abs_styles нет упомянутых атрибутов.   -  person the100rabh    schedule 15.10.2011


Ответы (6)


Я уверен, что есть лучший способ, но это как Я наконец заставил ActionBarSherlock и RoboGuice работать в моем маленьком приложении.

person Max    schedule 21.11.2011
comment
Спасибо, искал что-то подобное! - person Zsombor Erdődy-Nagy; 22.11.2011

Помимо проблем с библиотекой совместимости, вы также можете столкнуться с тем, как расширить свою деятельность как с RoboActivity, так и с SherlockActivity - в Java у вас нет множественного наследования :-)

Чтобы решить эту проблему, создайте собственный RoboSherlockActivity вручную или используйте библиотеку Роберто Тайли.

См. пример.

person Jörg    schedule 25.02.2012

Я просто хотел бы добавить, что «просто» добавив roboguice-sherlock к вашему maven pom, он волшебным образом работает.

    <dependency>
        <groupId>com.github.rtyley</groupId>
        <artifactId>roboguice-sherlock</artifactId>
        <version>1.5</version>
    </dependency>
person pl3kn0r    schedule 18.04.2013

Еще один пример только что был опубликован на github. Кроме того, он использует целую кучу других хороших инструментов. Посетите https://github.com/github/gauges-android.

person Manfred Moser    schedule 22.02.2012

Другой пример рабочего примера и утилиты можно найти здесь: http://search.maven.org/#artifactdetails%7Ccom.github.rtyley%7Croboguice-sherlock%7C1.3%7Cjar

person AllDayAmazing    schedule 06.06.2013

Начиная с RoboGuice 3, roboguice-sherlock включен в дистрибутиве RoboGuice. Схема именования класса остается такой же

Все классы в этом проекте имеют то же имя, что и классы RoboGuice, с добавлением «Sherlock» после «Robo», т.е. RoboSherlockListFragment.

за исключением того, что классы теперь находятся в roboguice.activity.
См. RoboSherlockActivity например.

person schnatterer    schedule 03.11.2014