Совсем недавно я опубликовал тема , в котором говорилось о коде, который работал в Android 2.3, но перестал работать в Android 4.0. Несколько человек написали лично по электронной почте, поблагодарили за информацию и попросили продолжить подобные публикации.
На этот раз поговорим об ActionBar. У одного пользователя возникла проблема с кодом, который работал на Android 3.0, но снова перестал работать на Android 4.0.
Небольшое отступление - Ты злой, я тебя оставлю
Около 15 лет назад, когда я начал изучать программирование самостоятельно и при этом подключенный к Интернету, я заметил удивительную вещь.Когда я, еще новичок, задал вопрос на русскоязычном форуме, то в ответ получил либо молчание, либо совет изучить оборудование и не мешать.
Когда я задал аналогичный вопрос на буржуазных форумах, да ещё на плохом английском (немецкий я учил в школе), то получил развернутые ответы.
С тех пор практически ничего не изменилось.
Я давно пренебрегал нашими форумами и предпочитаю общаться только «там».
Наверняка многие заметили, насколько разительно отличаются комментарии в блогах.
У них есть: хороший урок, спасибо за пост, отличная статья.
У нас: зачем еще велосипед, горизонт захламлен, краски в глазах поблекли, ветровка и т.д. Я лично знаю нескольких «бывших», которые писали блоги на двух языках — английском и русском, а потом оставили только англоязычную часть.
Понятно, почему? То же самое было и с моим предыдущим постом.
Вот типичные высказывания: стреляйте, суровые челябинские программисты и т. д. Как-то так совпало, что подобные вопросы несколько раз всплывали на зарубежных ресурсах, но никто не предлагал стрелять за неправильный код, а просто объяснял, почему этого делать нельзя.
Одним из примеров является http://stackoverflow.com/questions/9442527/networkonmainthreadexception-when-reading-from-web .
В общем только на этом ресурсе по запросу Сетьонмайнсреадсекцептион Было возвращено 90 результатов.
И никто не ругается.
Как говорится, почувствуйте разницу.
Это наш менталитет.
Новая проблема - не работает иконка в ActionBar
Один из зарегистрированных пользователей поделился этой проблемой мой сайт .Суть была в следующем: Значок приложения может работать как элемент навигации и играть роль кнопки «Домой», как и логотип Хабра на сайте в частности.
Это очень удобно в некоторых случаях, когда приложение состоит из нескольких экранов и можно «ткнуть» на системную иконку приложения, чтобы быстро вернуться.
Пример описан в документации и отлично работал на планшете под управлением Android 3.0, но внезапно перестал работать под Android 4.0. В принципе, ответ был быстро найден в Интернете, более того, даже в документации можно найти решение.
Но, судя по всему, человек просто устал или у него замылились глаза, а обратившийся человек его не нашел.
И шкатулка открылась просто.
Чтобы иконка приложения работала как элемент навигации, необходимо явно указать метод setHomeButtonEnabled()
Оказалось, что в Android 3.0 значок был включен в качестве кнопки навигации по умолчанию, а в Android 4.0 — нет. Кстати, обнаружил интересный момент, связанный с этой кнопкой.protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.two); ActionBar bar = getActionBar(); bar.setHomeButtonEnabled(true); }
Система позволяет добавить дополнительную стрелку слева от значка приложения методом bar.setDisplayHomeAsUpEnabled(истина);
Итак, если вы вызываете этот метод, то не обязательно вызывать предыдущий метод setHomeButtonEnabled(), все работает именно так.
Приятного программирования! Теги: #ActionBar #Android #Разработка Android
-
Подтекст: Общение На Страницах Книг
19 Oct, 24 -
Тесты Dropbox Примечания
19 Oct, 24 -
Интервью С Эдвардом Йордоном
19 Oct, 24 -
Социальная Музыка
19 Oct, 24 -
Бесплатная Электронная Книга По Ruby
19 Oct, 24