Как стать автором
Обновить
10
0

Пользователь

Отправить сообщение
ActionBarSherlock — отличное решение для таких случаев.
Такой код будет смотреться ужасно на любом языке. В том числе и на VB.
И у меня была такая беда. Мне помогло вот это:

adb shell
echo 1 > /sys/kernel/logger/log_main/enable
RegExp. Тестить регулярки.
Вся стилизация должна выносится в стили, а не задаваться в java коде. ViewPageIndicator очень гибко настраивается при помощи стилей. В styles.xml нужно определить свой стиль компонента, унаследованного от Widget.TitlePageIndicator и переопределить те атрибуты, которые необходимо:

<style name="Widget.DefaultTitlePageIndicator" parent="@style/Widget.TitlePageIndicator">
    <item name="selectedColor">?android:attr/textColorPrimary</item>
    <item name="footerColor">?android:attr/textColorPrimary</item>
    <item name="footerIndicatorStyle">underline</item>
    <item name="footerIndicatorHeight">4dp</item>
    <item name="footerLineHeight">2dp</item>
    <item name="footerPadding">8dp</item>
</style>

В данном примере были изменены цвета текста табов и линии, поддинги. Впринципе, на этом можно остановиться и просто указывать этот стиль для TitlePageIndicator в layout. Но лучше задать этот стиль для всех TitlePageIndicator по всему приложению:

<style name="BlackTheme" parent="@android:Theme.Black.NoTitleBar">
    <item name="titlePageIndicatorStyle">@style/Widget.DefaultTitlePageIndicator</item>
</style>


Это позволит использовать стиль компонента во всем приложении без лишних телодвижений. Ну и разумеется нужно указать в манифесте тему приложения:

<application android:theme="@style/BlackTheme"  </application>

Для повторяющихся задач Timer не рекомендуют использовать, для этого лучше подходит Handler.
Также можно использовать AlarmManager. Тут пример.
Нашел еще один довольно интересный проект androidannotations. Основной плюс, что используется не рефлексия, а кодогенерация. Но инжектить можно только в Activity, в то время как Aibolit позволяет сделать это в любой объект.
Нет, но библиотека только начала жить. Так что предложения по улучшению приветствуются.
Aibolit обзавелся своим лого. Спасибо Aliaksei Latsinnik за это.
Кстати один из вариантов был

>> а аннотации айболита у вас работают после обфускации?
Да
>> чем хуже просто написать в xml файле лайаута «android:onClick=»someMethod""?
Можно, однако android:onClick не будет работать в приложении, прошедшем обфускацию кода. Да и к тому же, Aibolit позволяет повесить лисенера не только на onClick, но и на множество других событий.

>> Человеку, не знакомому с этим фреймворком придется тратить время на понимание сути используемых аннотаций.
Порог вхождения, имхо, минимален.

>> И не становится код более эстетичным с вашими аннотациями
Может быть: )
Провел на Nexus One тот же эксперимент с 35 инъекциями, разница составила порядка 20 мс.
Имхо, зависимость обратная: чем сложнее приложение, тем более оправдано использование такого инструмента, как Aibolit. Чем писать раз за разом
    sendButton.setOnClickListener(new OnSendButtonClickListener());
    
    ...

    private final class OnSendButtonClickListener implements OnClickListener {

        @Override
        public void onClick(View v) {
            // do something usefull
        }
    }

лучше просто и лаконично объявить обработчик нажатия
    @InjectOnClickListener(R.id.sendButton)
    private void onSendButtonClick(View v) {
            // do something usefull
    }

Код становится более лаконичным, эстетичным чтоли.
Можно определить свои аннотации, скажем @InjectOnUiThread для метода и реализовать вызов метода в UI треде, что опять же избавит от громоздких вызовов.
«двукратным» — слишком сильно сказано. Во-первых, измерения производились на 35 инъекциях, что довольно много, как правило, необходимо инициализировать намного меньше компонентов, во-вторых, инициализация проводится единожды при вызове Aibolit.doInjections, в-третьих, необходимо считать не «во сколько», а «на сколько» больше (если на запуск вашей активити понадобится 200 мс, то с использованием aibolit — 250 мс, а это уже не «в 2 раза»), в-четвертых, имхо, не стоит экономить на копейках, часто Вы боретесь за миллисекунды ускорения вашего приложения?

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность