Android studio показать подсказку

Содержание
  1. Советы для Android Studio
  2. Делимся исходниками
  3. Android LogCat
  4. Настройки на экране приветствия (Welcome Screen)
  5. Генерация getXXX/setXXX-методов класса
  6. Кодировка
  7. Подключение внешних программ
  8. Переходим на тёмную сторону
  9. Буфер обмена с историей
  10. Указать расположение папки с JDK и Android SDK
  11. Вспомнить параметры метода
  12. Разбиваем редактор кода на две части
  13. Tip of the Day
  14. Сгенерировать Javadoc
  15. Показать справку под указателем мыши
  16. Включить нумерацию строк кода
  17. Разделители между методами
  18. Пометить изменённые файлы звёздочкой
  19. Добавить однозначные import на лету
  20. Окружить строчку кода
  21. Быстрое создание копии строки кода
  22. Быстрое удаление строки
  23. Быстрый переход к определению
  24. Быстрый набор метода, класса, переменной
  25. Переход к следующему/предыдущему методу
  26. Живые шаблоны
  27. Toast — всплывающие сообщения
  28. Вступление
  29. Теория
  30. Практика
  31. Константы для указания продолжительности показа сообщения
  32. Настройка позиции на экране
  33. Не забывайте про метод show()
  34. Пример
  35. Добавляем картинку
  36. Создание собственных всплывающих уведомлений
  37. Toast.Callback
  38. Использование уведомлений Toast в рабочих потоках
  39. Дополнительные сведения
  40. Заключение
  41. Дополнительные материалы

Советы для Android Studio

Делимся исходниками

Если нужно поделиться исходником класса, метода и просто блока кода, то выделяем нужный кусок кода или щёлкаем в свободном месте в редакторе кода правой кнопкой мыши и выбираем пункт Create Gist. . В диалоговом окне выбираем нужные значения. Если у вас нет учётной записи на Гитхабе, то выбирайте анонимный вариант.

Код класса или кусок кода будет размещён на сайте. Вы можете дать ссылку на код нужным людям.

Android LogCat

В студии можно задать цвет для каждого типа сообщений, выводимых в LogCat. Заходим в File | Settings. | Editor | Colors & Fonts | Android LogCat.

Чтобы не сбивать встроенные настройки, сначала нажимаем кнопку Save as. и сохраняемся под другим именем, например, Cat. Далее снимаем флажок Use inherited attributes, чтобы появилась возможность редактирования свойств.

Дальнейшие шаги уже понятны. Выбираем тип сообщения, например, Info и выбираем цвет Foreground щелчком по цветному прямоугольнику.

Цветные сообщения удобнее просматривать, чем однотонные.

Настройки на экране приветствия (Welcome Screen)

На экране приветствия появилась возможность кастомизации некоторых настроек. Первая настройка касается упорядочения проектов. Если их слишком много и вы хотите часть из них сгруппировать, то такая возможность появилась в Android Studio 2.0. Допустим, вы хотите объединить проекты, связанные с котами в отдельную группу Cats. Щёлкаем правой кнопкой мыши на проектах и выбираем пункт New Project Group.

В следующем окне выбираем название.

У вас появится новая группа. Теперь достаточно выбрать нужные вам проекты и через контекстное меню выбрать пункт Move To Group, далее выбираем нужную группу.

Теперь у нас порядок, проекты с котиками хранятся в одном месте.

Следующая кастомизациия касается значка проекта. По умолчанию, на экране приветствия вы не видите никаких значков у проектов. Снова вызываем контекстное меню и выбираем пункт Change Icon.

В следующем окне вы увидите стандартные значки студии для проекта. Нажимаем на ссылку Change. и выбираем свой значок для проекта. Можно выбрать значки для стандартной и тёмной темы студии.

Теперь вам будет проще найти свой проект по значку.

Генерация getXXX/setXXX-методов класса

Студия умеет самостоятельно генерировать так называемые геттеры и сеттеры класса на основе полей класса. Если вы используете правильный стиль кодирования, то сначала требуется небольшая доработка настроек для распознавания префикса m (member) в названии переменных. Откройте окно настроек Android Studio File | Settings. и выберите раздел Editor | Code Style | Java. Перейдите на вкладку Code Generation. В таблице Naming найдите строку Field и в поле Naming Prefix введите префикс m для полей. Затем добавьте префикс s для статических полей в строке Static field.

Подобная настройка научит студию генерировать методы для поля, опуская префикс. Например, для поля mCatName будет создан метод setCatName() вместо setMCatName().

Теперь в файле класса с полями щёлкните правой кнопкой мыши после конструктора и выберите команду Generate…| Getter And Setter, выберите поля класса и щёлкните на кнопке OK, чтобы сгенерировать get- и set-метод для каждой переменной.

Кодировка

В Android используется кодировка UTF-8. Студия по умолчанию использует системную кодировку и у многих это win-1251. Этом может вызвать проблемы при выводе строковых сообщений. В правом нижнем углу можно быстро поменять кодировку для файла проекта.

Для глобального изменения настроек для будущих проектов идём File | Settings | Editor | File Encodings и меняем IDE Encoding и Project Encoding.

Подключение внешних программ

Идём в File | Setting. и выбираем Editor | Tools | External Tools. Нажимаем на значок с плюсом и добавляем путь к исполняемой программе или сценарию bat, cmd и т.п.

Переходим на тёмную сторону

Студия поставляется с тремя предустановленными темами: IntelliJ, Darcula, Windows. По умолчанию, используется тема IntelliJ с светлым фоном. Тема Windows тоже используется светлый фон.

Особый интерес представляет тема с чёрным фоном Darcula. Для тех, кто слишком быстро читает, читаю название темы по слогам: Дар-ку-ла, а не Дракула. Здесь обыгрывается игра слов «dark».

Чтоб переключиться в тёмную тему, открываем окно настроек File | Setting (Ctrl+Alt+S), в диалоговом окне раскрываем категории Appearance & Behavior | Appearance и меняем тему в выпадающем списке Theme.

Читайте также:  Bad north jotunn edition android

Вы также можете скачать другие темы по адресу ideacolorthemes.org.

Также мы можете доработать под себя предустановленную тему. Для этого откройте в тех же Настройках раздел Editor | Colors & Fonts, внесите требуемые изменения и сохраните свою тему под нужным именем через кнопку Save As. .

Буфер обмена с историей

В студии есть свой продвинутый буфер обмена. Скопируйте несколько раз разные участки кода. Перед вставкой нажмите комбинацию Ctrl+Shift+V. Появится диалоговое окно с историей скопированных строк. Выберите нужный вариант и нажмите OK.

Настройки буфера обмена можно найти в File | Settings. | Editor | General в блоке Limits. По умолчанию у настройки Maximum Number of Contents to Keep in Clipboard используется значение 5.

Указать расположение папки с JDK и Android SDK

Если вы используете Eclipse и студию, то возможно вы уже раньше устанавливали JDK и SDK до студии. Нет необходимости скачивать и устанавливать их по новой. Зайдите в меню File | Project Structure и в пункте SDK Location укажите расположение папок.

Вспомнить параметры метода

Забыли параметры метода? Не беда, поместите курсор в скобки и нажмите комбинацию клавиш Ctrl+P. Подсказка поможет вам сообразить.

Разбиваем редактор кода на две части

По умолчанию редактор кода открывает один активный документ. Если вы хотите видеть сразу два документа (или даже один документ в двух отдельных вкладках), то щёлкните правой кнопкой мыши на вкладке документа и выберите из контекстного меню вариант Split Vertically или Split Horizontally.

Tip of the Day

Если вы уберёте флажок с пункта «Show Tips on Startup», то всегда можете вернуть всё назад, вызвав это окно через меню Help | Tip of the Day.

Сгенерировать Javadoc

В Eclipse в меню был пункт создания Javadoc. В студии нет комбинации клавиш для этой операции. Можно сгенерировать код автодополнением. Набираете команду /** и нажимаете Enter. Будет сгенерирован комментарий Javadoc.

Чтобы получить документацию на основе созданных комментариев, выбираем меню Tools | Generate JavaDoc. . В диалоговом окне выбираем нужные настройки и получаем на выходе набор html-файлов и других сопутствующих документов.

Показать справку под указателем мыши

По умолчанию всплывающая подсказка не появляется при подведении указателя мыши к имени класса, метода и т.д. Я сначала расстроился, но кот сказал, что горю можно помочь. Нужно открыть меню File | Settings | Editor | General и поставить флажок у пункта Show quick doc on mouse move. И откуда кот это узнал?

Включить нумерацию строк кода

По умолчанию нумерация строк отключена. Чтобы включить нумерацию, идём в File | Settings | и выбираем Editor | General | Appearance и ставим флажок у пункта Show line numbers. Впрочем, включить её можно прямо из редактора кода. Щелкните правой кнопкой мыши на серой области слева от кода и в контекстом меню выберите пункт Show Line Numbers.

Разделители между методами

Изучая настройки IDE, наткнулся на удобную опцию включения разделительной черты между методами. Очень удобно для меня, сразу видно, где заканчивается один метод и начинается другой. Очень не хватало такой функциональности, теперь код как на ладони.

Идём в File | Settings | Editor | General | Appearance и ставим флажок у пункта Show method separators.

Пометить изменённые файлы звёздочкой

Я привык, что в редакторе изменённые, но не сохранённые файлы на вкладках помечаются звёздочкой. Так работает в Eclipse, Notepad++ и многих других редакторах. А в Студии почему-то по умолчанию настройка отключена.

Идём в File | Settings | Editor | General | Editor Tabs и ставим флажок у пункта Mark modified tabs with asterisk.

Добавить однозначные import на лету

Очень удобная настройка, позволяющая автоматически импортировать нужный класс при написании кода или вставке фрагмента кода из других источников. Я себе включил.

Идём в File | Settings | Editor | General | Auto Import и ставим флажок у пункта Add unambiguous imports on the fly.

Окружить строчку кода

Нередко бывают ситуации, когда строчку кода надо поместить в условие, цикл и т.п. (if, if/else, while, for, try/catch). Можно немного автоматизировать эту операцию, если установить курсор на нужной строке или выделить фрагмент кода и нажать комбинацию клавиш Ctrl+Alt+T или через меню Code | Surround With.

Быстрое создание копии строки кода

Нажмите комбинацию Ctrl+D (дублирование), чтобы быстро создать копию строки кода под указателем мыши.

Быстрое удаление строки

Чтобы удалить строку, её нужно выделить и нажать кнопку Delete, а можно сразу нажать комбинацию Ctrl+Y (Win) или cmd+backspace(mac).

Быстрый переход к определению

Нажмите клавишу Ctrl и левую кнопку мыши, когда курсор находится на имени класса, метода, поля класса или имени переменной — вы автоматически перенесётесь в место, где находятся их определения. Также можно использовать горячие клавише Ctrl+B.

Быстрый набор метода, класса, переменной

Для быстрого набора переменной можно использовать первую и заглавные буквы в имени метода, класса, переменной. Например, можно набрать sst вместо setStatusText(). Это удобно, когда есть много похожих названий. Такой способ набора позволяет быстрее выбрать нужное имя.

Читайте также:  How to load android

Переход к следующему/предыдущему методу

Используйте горячие клавиши Alt+↓ для перехода к следующему методу, и Alt+↑ для перехода к предыдущему методу.

Живые шаблоны

«Живые шаблоны» — специальное сочетание символов, которые могут преобразоваться в блок кода. Если вы не помните сокращение, то нажмите Ctrl+J (команда Code | Insert Live Template), чтобы увидеть список сокращений.

Если вы помните, то всё намного проще. Например, набираем ifn и нажимаем клавишу пробела. Данные символы преобразуются в код

Живые шаблоны могут работать, как простые сокращатели (например, St превращается в String), а могут учитывать контекст. В нашем примере перед вводом шаблона был объявлен какой-то объект. Поэтому студия автоматически подставила в условие if подходящий объект по смыслу. Можете попробовать данный пример в разных местах вашей программы, чтобы увидеть, как это действует.

Рассмотрим пример использования живого шаблона на практике. Допустим, мы создали некий метод с использованием массива.

Введите внутри метода слово itar, от сокращённого «iteray array». В данном случае даже необязательно прибегать к горячим клавишам, так как студия сама покажет нужную подсказку, остаётся только нажать клавишу Enter. Живой шаблон видит, что метод использует массив, поэтому предложит следующий вариант.

Также можно задать массив внутри метода и по контексту шаблон развернёт код на основе этой информации.

Настройки шаблонов находятся в Settings. | Editor | Live Templates.

Наиболее интересными мне показались шаблоны для создания ссылок к компонентам find и toast.

Теперь можно написать:

После применения шаблона код автоматически развернётся в

Осталось только добавить имя ресурса.

С toast и так всё понятно. После ввода этого шаблона получаем.

Шаблон работает по контексту и подставляет имя вашей активности. Я заменил на свой вариант. Вместо:

Видео о том, как создать собственный живой шаблон.

Источник

Toast — всплывающие сообщения

Вступление

Что такое тост? Представьте себе картину. За столом собралась большая куча народа и весело отмечает день рождения кота. Стоит шум и гам. Соседи громко разговаривают между собой и не обращают внимания на других. И тут из-за стола поднимается всеми уважаемый человек со стаканом вина и вилочкой стучит по стеклу стакана, чтобы привлечь внимание присутствующих. Шум смолкает и человек произносит тост. Также и в телефоне, когда вы увлечены какой-то задачей, вдруг всплывает сообщение, привлекая ваше внимание. Это и есть Toast. Второй пример — когда вы заряжаете специальный хлеб (тосты) в тостер, то они через определённое время подпрыгивают, сигнализируя о своей готовности. Посмотрим, как это работает в Android.

Теория

Всплывающее уведомление (Toast Notification) является сообщением, которое появляется на поверхности окна приложения, заполняя необходимое ему количество пространства, требуемого для сообщения. При этом текущая деятельность приложения остаётся работоспособной для пользователя. В течение нескольких секунд сообщение плавно закрывается. Всплывающее уведомление также может быть создано службой, работающей в фоновом режиме. Как правило, всплывающее уведомление используется для показа коротких текстовых сообщений.

Практика

Для создания всплывающего уведомления необходимо инициализировать объект Toast при помощи метода Toast.makeText(), а затем вызвать метод show() для отображения сообщения на экране:

Обычно пишут в одну строчку, соединяя вызов методов в цепочку .

У метода makeText() есть три параметра:

  • Контекст приложения
  • Текстовое сообщение
  • Продолжительность времени показа уведомления. Можно использовать только две константы

Константы для указания продолжительности показа сообщения

  • LENGTH_SHORT — (По умолчанию) показывает текстовое уведомление на короткий промежуток времени;
  • LENGTH_LONG — показывает текстовое уведомление в течение длительного периода времени.

Если покопаться в исходниках Android, то можно найти такие строчки:

Как видите, уведомления выводятся на 3 с половиной секунды или на 2 секунды. Других вариантов нет, не пытайтесь использовать другие значения — у вас ничего не получится.

Настройка позиции на экране

По умолчанию стандартное всплывающее уведомление появляется в нижней части экрана. Изменить место появления уведомления можно с помощью метода setGravity(int, int, int). Метод принимает три параметра:

  • стандартная константа для размещения объекта в пределах большего контейнера (например, GRAVITY.CENTER, GRAVITY.TOP и др.);
  • смещение по оси X
  • смещение по оси Y

Например, если вы хотите, чтобы уведомление появилось в центре экрана, то используйте следующий код (до вызова метода show()):

Для вывода в левом верхнем углу.

Если нужно сместить уведомление направо, то просто увеличьте значение второго параметра. Для смещения вниз нужно увеличить значение последнего параметра. Соответственно, для смещения вверх и влево используйте отрицательные значения.

Не забывайте про метод show()

Типичная ошибка начинающих программистов — забывают добавить вызов метода show() для отображения сообщения на экране. К счастью, в студии, если вы пропустите метод show(), то строка будет подсвечена, а при подведении указателя мыши к строке увидите:

Kotlin Java

Пример

Создайте новый проект или используйте любой старый проект из предыдущих занятий. Добавьте на экран активности кнопку и присвойте ей текст Показать Toast. Теперь напишем код:

Запустите приложение и нажмите кнопку. В центре экрана появится на короткое время текстовое сообщение, которое само исчезнет. Очень похоже на поведение чеширского кота.

Читайте также:  Как следить за телефоном жены андроид с айфона

Начиная с Android 4.4, внешний вид всплывающего сообщения изменился, раньше был прямоугольник без закруглений.

Для закрепления материала напишем ещё один пример. Удалим предыдущий код для щелчка кнопки и напишем такой код:

Я подумал, что вы можете не заметить сообщение, которое показывается слишком мало времени. Поэтому на этот раз я использовал константу LENGTH_LONG, чтобы вы успели обратить внимание на сообщение и покормить наконец несчастного голодного кота. Помимо этого, я поместил текст сообщения в XML-ресурсы, как это рекомендуется всегда делать. Кроме того, сообщение будет выводиться в верхней части экрана.

Добавляем картинку

Как правило, для Toast используются короткие текстовые сообщения. При необходимости вы можете добавить к сообщению и картинку. Используя метод setView(), принадлежащий объекту Toast, вы можете задать любое представление (включая разметку) для отображения.

Начнем с приготовлений. Подготовьте картинку и разместите её в папке res/drawable, как мы делали в уроке с «Hello Kitty». Картинка будет доступна приложению как ресурс через название файла без расширения. Например, я добавил в папку файл с изображением кота hungrycat.jpg и могу получить к нему доступ через выражение R.drawable.hungrycat. Чтобы изображение появилось в стандартном Toast-сообщении, нам потребуется программно создать объект класса ImageView и задать для него изображение из ресурсов с помощью метода setImageResource. Сам по себе стандартный внешний вид Toast состоит из контейнера LinearLayout, в который нужно добавить созданный объект ImageView. Можно задать также позицию, в которую следует вывести изображение. Если указать значение 0, то изображение будет показано выше текста. Код для создания Toast с изображением выглядит следующим образом:

Вообще, получив доступ к контейнеру, вы можете делать с ним что угодно. Например, сделать его прозрачным. Смотрится интересно.

Создание собственных всплывающих уведомлений

В предыдущем примере мы получили доступ к контейнеру через метод getView(). Можно пойти от обратного — подготовить свой контейнер и внедрить его в объект Toast через метод setView().

Создадим собственный дизайн разметки для сообщения.

Вам нужно создать разметку в файле res/layout/custom_toast.xml.

Определите два дочерних элемента ImageView и TextView:

Для получения разметки из ХМL-файла и работы с ней в программе используется класс LayoutInflater и его метод getLayoutInflater(), которые возвращает объект LayoutInflater. Затем вызовом метода inflate() получают корневой объект View этой разметки. Например, для файла разметки уведомления с именем custom_toast.xml и его корневого элемента c идентификатором android:id=»@+id/custom_toast_container» код будет таким:

Параметры, передаваемые в метод inflate():

  • идентификатор ресурса макета (custom_toast.xml);
  • идентификатор ресурса корневого элемента (custom_toast_container).

После получения корневого элемента из него можно получить все дочерние элементы методом findViewByid() и определить информационное наполнение для этих элементов.

Затем создаётся объект Toast и устанавливаются нужные свойства, например, Gravity и продолжительность времени показа уведомления.

После этого вызывается свойство view() (Kotlin) или метод setView() (Java), которому передаётся разметка уведомления, и метод show(), чтобы отобразить уведомление с собственной разметкой.

Запустите проект на выполнение. При нажатии кнопки вызова должно появиться на несколько секунд окно уведомления с текстовым сообщением и значком.

Ради интереса можете посмотреть, как выглядит разметка в исходных кода Android.

Toast.Callback

В Android 11 R (API 30) добавили возможность отслеживания момента, когда сообщение появляется и скрывается при помощи Toast.Callback.

Ещё раз напомню, что метод setView() в Android 11 признан устаревшим. А также вообще рекомендуют не использовать собственные виды всплывающих сообщений, а ограничиться простыми текстовыми сообщениями. Иначе можно нарваться на системные ограничения.

Использование уведомлений Toast в рабочих потоках

Как элемент графического интерфейса Toast должен быть вызван в потоке GUI, иначе существует риск выброса межпотокового исключения. В листинге объект Handler используется для гарантии того, что уведомление Toast было вызвано в потоке GUI.

Дополнительные сведения

Напоследок хочу предупредить об одной потенциальной проблеме. При вызове сообщения нужно указывать контекст в первом параметре метода makeText(). В интернете и, возможно и у меня на сайте будет попадаться пример makeText(MainActivity.this, . ). Ошибки в этом нет, так как класс Activity является потомком Context и в большинстве случаев пример будет работать. Но иногда я получаю письма от пользователей, которые жалуются на непонятное поведение сообщения, когда текст не выравнивается, обрезается и т.д. Это связано с тем, что активность может использовать определённую тему или стиль, которые вызывают такой побочный эффект. Поэтому я рекомендую вам использовать метод getApplicationContext().

Второй момент — фрагменты, которые будете изучать позже, не являются потомками контекста. Если вы захотите вызвать всплывающее сообщение в фрагменте, то проблема может поставить вас в тупик. Вам нужно добавить новую переменную класса Activity через метод getActivity():

Такое же может случиться при вызове всплывающих сообщений из диалоговых окон, которые тоже не относятся к классу Context. Вместо getApplicationContext() также можно вызывать метод getBaseContext().

Заключение

Сегодня вы научились выводить всплывающие сообщения на экран, а также получили образец кода, который вы обязаны вставлять в любое ваше приложение, чтобы пользователи никогда не забывали кормить своего питомца.

Дополнительные материалы

Пример частично цветного текста в Toast через Spannable

Источник

Оцените статью