Ответ 1
Я уверен, что есть лучший способ, но вот как я наконец получил ActionBarSherlock и RoboGuice, работающие в моем маленьком приложении.
Я хотел бы использовать библиотеки, упомянутые в названии, в одном проекте.
Тем не менее, обоим нужно, чтобы мои действия расширялись от специального класса Activity: в случае Roboguice это RoboAcitivity и FragmentActivity для ActionbarSherlock.
ActionbarSherlock расширяет библиотеку совместимости, что приятно, потому что мне также нужно использовать фрагменты, а уровень проекта s < API уровня 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'.
Я уверен, что есть лучший способ, но вот как я наконец получил ActionBarSherlock и RoboGuice, работающие в моем маленьком приложении.
Помимо проблем с библиотекой совместимости, вы также можете бороться с тем, как продлить свою деятельность как с RoboActivity
, так и SherlockActivity
- на Java, у вас нет наложения mulitple: -)
Как вы решаете это, вручную создайте свой собственный RoboSherlockActivity
или используйте
Библиотека Роберто Тейли.
См. пример.
Я просто хотел бы добавить, что "просто" добавляет roboguice-sherlock к вашему maven pom, который волшебно работает.
<dependency>
<groupId>com.github.rtyley</groupId>
<artifactId>roboguice-sherlock</artifactId>
<version>1.5</version>
</dependency>
Еще один пример, который только что был выпущен на github. Он использует целую кучу других хороших инструментов в дополнении. Проверьте https://github.com/github/gauges-android
Другой пример рабочего примера и утилиты можно найти здесь: http://search.maven.org/#artifactdetails%7Ccom.github.rtyley%7Croboguice-sherlock%7C1.3%7Cjar
Начиная с RoboGuice 3, roboguice-sherlock framework включен в дистрибутив RoboGuice. Схема именования для класса по-прежнему та же
Все классы в этом проекте имеют то же имя, что и RoboGuice, причем "Шерлок" вставлен после "Robo", то есть Robo Sherlock ListFragment
за исключением того, что классы теперь находятся в пакете roboguice.activity
.
Например, RoboSherlockActivity
.