Android studio textview focus

How set focus on View Android development example

Set focus on a View in Android application example source code for Button, EditText, View, TextView, isFocused(), requestFocus() .

397LW NO topic_id

Další témata . (Topics)

File open read to StringBuilder close Java example | file-open-read-to-stringbuilder-close-java-example

BufferedReader , FileReader, StringBuilder , readLine, close Java example

Android example

Java example

1. Fragments Tutorial XML — czech language | 1-fragments-tutorial-xml-czech-language

Tutoriál je pro naprosté začátečníky s fragmenty, machři se nic nového nedozvědí.
Tutoriál se bude zabývat upozorněním na některé záludnosti v příkladu, jenž si pozorně pročtěte, a
který si můžete otevřít a stáhnout zde:
https://developer.android.com/training/basics/fragments/creating.html
Je tam i zip soubor, který si stáhněte a otevřete v Android Studiu (JetBrains IntelliJ IDEA software),
či jiném IDE, které používáte k programování.

Important: Protože Android Studio má celkem dost značné nároky na PC, zejména na rychlost a budete si chtít pořídit nové PC, je třeba s procesorem Intel a nekupovat repas, ale vše v novotě. Doporučované minimum je nedostatečné a práce na takovém PC je horor. Dole na stránce odkazu je uveden typ procesoru, který by mělo PC mít, jinak na něm nespustíte, nebo jen s obtížemi, emulátor, na kterém se testují vytvářené aplikace.
Například pro rok 2016 jsou požadavky na procesor:
For accelerated emulator: 64-bit operating system and Intel® processor with support for Intel® VT-x, Intel® EM64T (Intel® 64), and Execute Disable (XD) Bit functionality

Začneme soubory XML
V příkladu jsou v res složce dvě složky layout.
layout — pro obrazovky chytrých telefonů a
layout-large — pro obrazovky tabletů a větších obrazovek

V složce layout jsou dva soubory.
article_view.xml je v tomto případě vždy využíván fragmentem ArticleFragment.java, který zobrazuje obsah. Je jedno jaká bude velikost obrazovky, protože si jej otevírá ArticleFragment.java sám.

Obě složky obsahují soubor stejného názvu news_articles.xml — který obsahuje kontejner buď jen pro jeden panel (layout složka),
nebo pro dva panely (layout-large složka) pro velké obrazovky.

Important:
Složku layout-large lze přejmenovat na swXXXdp např. sw600dp a pak si zařízení bere automaticky resource z této složky, pokud nejmenší rozměr obrazovky je roven, či větší 600dp.
To lze využít k oklamání zařízení při testování. Pokud máte jen malý telefon a chcete na něm zkoušet dva panely, tak složku přejmenujte, po dobu testování, např. na sw300dp a pak i malé zařízení zobrazí oba panely. Po ukončení testování je třeba zase složku přejmenovat na původní nejmenší přípustnou šířku zařízení (w600dp), nebo nejmenší rozměr jedné ze stran obrazovky (sw600dp).

news_articles.xml v layout složce obsahuje jen FrameLayout

Important: U tohoto kontaineru -FrameLayout- je možno měnit obsah, tedy dynamicky vyměnit fragment za jiný! Toho využívá aplikace u malých obrazovek pro zobrazení jak seznamu, tak i dalšího obsahu po kliknutí na položku v ListView — seznamu.
U fragment kontaineru s natvrdo přiřazeným fragmentem dynamická výměna za běhu programu není možná (viz níže dva kontainery tagu fragment).

news_articles.xml v layout-large složce obsahuje dva kontainery tagu fragment s plnou cestou k souboru např. com.example.android.fragments.HeadlinesFragment,
u kterých není možná dynamická výměna fragmentu.

Important: Pokud chcete měnit fragmenty v některém kontaineru, je třeba použít FrameLayout kontainer.

Important: Na co si ještě dát pozor.
Na android:layout_width=»0dp» — musí být 0dp, jinak se např. některý panel nezobrazí, nebo neuvídíte vůbec nic.
Podobně i android:layout_weight=»1″ u prvního panelu android
android:layout_weight=»2″ u panelu druhého.

Источник

Читайте также:  Танчики для андроид по блютузу

TextView

Компонент TextView предназначен для отображения текста без возможности редактирования его пользователем, что видно из его названия (Text — текст, view — просмотр).

Находится в разделе Texts.

TextView — один из самых используемых компонентов. С его помощью пользователю удобнее ориентироваться в программе. По сути, это как таблички: Руками не трогать, По газону не ходить, Вход с собаками воспрещен, Часы работы с 9.00 до 18.00 и т.д., и служит для представления пользователю описательного текста.

Для отображения текста в TextView в файле разметки используется атрибут android:text, например:

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

Программная установка текста

Программно текст можно задать методом setText():

Атрибуты

Для всех вышеперечисленных атрибутов в классе TextView есть соответствующие методы для чтения или задания соответствующих свойств.

Программно установим размеры текста при помощи setTextSize() с различными единицами измерения.

По умолчанию у компонентов TextView отсутствует фоновый цвет. Чтобы задать цвет, укажите значение Drawable для атрибута android:background. В качестве значения Drawable может использоваться изображение или XML-представление фигуры, включающий ресурс Drawable (поместить в папку res/drawable).

Программная установка фона

В некоторых случаях программисты из-за невнимательности неправильно меняют фон элемента программным способом и удивляются, почему ничего не работает.

Предположим, у вас определён в ресурсах зелёный цвет:

Следующий код будет ошибочным:

Нужно так (два варианта):

Реагируем на событие onClick

Если вы хотите, чтобы TextView обрабатывал нажатия (атрибут android:onClick), то не забывайте также использовать в связке атрибут android:clickable=»true». Иначе работать не будет!

Многострочный текст

Если вы хотите создать многострочный текст в TextView, то используйте символы \n для переноса строк.

Например, в ресурсах:

Обратите внимание, что в тексте также применяется простое форматирование.

Также перенос на новую строку можно задать в коде:

Увеличиваем интервалы между строками

Вы можете управлять интервалом между соседними строчками текста через атрибут android:lineSpacingMultiplier, который является множителем. Установите дробное значение меньше единицы, чтобы сократить интервал или больше единицы, чтобы увеличить интервал между строками.

Бой с тенью

Чтобы оживить текст, можно дополнительно задействовать атрибуты для создания эффектов тени: shadowColor, shadowDx, shadowDy и shadowRadius. С их помощью вы можете установить цвет тени и ее смещение. Во время установки значений вы не увидите изменений, необходимо запустить пример в эмуляторе или на устройстве. В следующем примере я создал тень красного цвета со смещением в 2 пикселя по вертикали и горизонтали. Учтите, что для смещения используются единицы px (пиксели), единицы dp не поддерживаются.

Программный эквивалент — метод public void setShadowLayer (float radius, float dx, float dy, int color):

Создание ссылок автоматом

У TextView есть ещё два интересных свойства Auto link (атрибут autoLink) и Links clickable (атрибут linksClickable), которые позволяют автоматически создавать ссылки из текста.

Выглядит это следующим образом. Предположим, мы присвоим элементу TextView текст Мой сайт: developer.alexanderklimov.ru и применим к нему указанные свойства.

При этом уже на этапе разработки вы увидите, что строка адреса сайта после слов Мой адрес: стала ссылкой. Если вы запустите приложение и нажмете на ссылку, то откроется браузер с указанным адресом. Вам даже не придется писать дополнительный код. Аналогично, если указать номер телефона (параметр phone), то запустится звонилка.

У ссылки есть интересная особенность — при длительном нажатии на ссылку появляется диалоговое окно, позволяющее скопировать ссылку в буфер обмена.

Атрибут autoLink позволяет комбинировать различные виды ссылок для автоматического распознавания: веб-адрес, email, номер телефона.

Цвет ссылки можно поменять через свойство Text color link (XML-атрибут textColorLink), а программно через метод setTextLinkColor().

Программно можно установить ссылки на текст через класс Linkify:

Читайте также:  Игровые лаунчеры для андроид

Кроме константы ALL, можно также использовать Linkify.EMAIL_ADDRESSES, Linkify.MAP_ADDRESSES, Linkify.PHONE_NUMBERS. К сожалению, русские адреса не распознаются. В моём случае индекс был распознан как телефонный номер, а город и улица не стали ссылкой.

В таких случаях придётся самостоятельно добавить ссылки в текстах. Например, определим ссылку в ресурсе:

Присвоим созданный ресурс тексту в TextView и запустим пример. Сам текст будет выглядеть как ссылка, но реагировать не будет. Чтобы исправить данную проблему, добавим код:

Ссылки в тексте выглядят не совсем удобными. Есть отдельная библиотека, которая улучшает функциональность. Описание проблем и ссылка на библиотеку есть в статье A better way to handle links in TextView — Saket Narayan.

Совет: Используйте полупрозрачность с умом

Если вам нужно установить текст полупрозрачным, то не используйте атрибут android:alpha:

Дело в том, что такой подход затрачивает много ресурсов при перерисовке.

Атрибут textColor позволяет установить полупрозрачность без потери производительности:

Выделить текст для копирования

По умолчанию, текст в TextView нельзя выделить для копирования. Но в API 11 появилась такая возможность, которая может пригодиться. Делается либо при помощи XML-атрибута android:textIsSelectable, либо через метод setTextIsSelectable().

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

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

Сделайте долгий тап на тексте в любом TextView. Увидите стандартные ползунки для выбора длины текста. Скопируйте текст, сделайте длинный тап в EditText и вставьте текст.

Источник

Урок 5. TextView. Часть вторая. Аттрибуты

Продолжаем с TextView. Да, материал я хотел опубликовать еще вчера, но не опубликовал.

В прошлый раз мы указали текст нашему View, притом сделали это разными способами. В этот раз предлагаю разобрать все остальные xml аттрибуты TextView, а так же рассмотреть их реализацию в коде.

Дополнительно можете ознакомиться с официальной документацией от Google вот тут.

Аттрибуты TextView

Сразу предупреждаю, что тут будут не буквально ВСЕ доступные аттрибуты для TextView, а только его собственные (а так же доступные его дочерним классам). А общие аттрибуты для всех View рассмотрю уже позже (сюда же отнесу и их размеры, положение относительно других элементов и т.д.).

Почему нам может быть интересен именно TextView? Ну, логичнее было бы начать таки с их общего родителя View, но и Text куда интереснее чем вы можете подумать. В Android он является родителем Button (кнопка) и EditText (поле ввода), а значит, что все указанные тут аттрибуты будут применимы к ним. Это справедливо для любого наследующего TextView класса.

android:enabled

Может иметь значения true или false. Влияет на активность виджета.

Неактивный view будет визуально отличаться от активного, а так же его нельзя будет взять в фокус или кликнуть на него.

При этом мы все так же можем изменить содержимое даже для неактивного TextView (setText в исходном коде).

android:textAppearance

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

К примеру. В файле styles.xml добавляем такой код:

Тут я взял красный цвет из ресурсов андроида (но лучше использовать свои, так как некоторые ресурсы в модифицированных системах могут просто-напросто отсутствовать). А так же изменил размер текста.

И указываю свой стиль данному аттрибуту. Результат должен быть отрисован сразу.

И добавил кнопку для наглядности. Текст аналогичен.

android:textColor

Был в примере выше. Принимает ресурс цвета. Это может быть как отдельный xml ресурс, так и color вроде тех, что в файле colors.xml, а так же можно указать непосредственно сам цвет в виде: « #rgb «, « #argb «, « #rrggbb «, или « #aarrggbb «. Используется схема альфа(прозрачность) — красный — зеленый — синий.

Читайте также:  Андроид самопроизвольно включается блютуз

android:textSize

Так же был показан выше. Отвечает за размер текста в конкретном TextView. Размер указываем в величине sp. Описание взял из ответа на стаке:

Scale-independent Pixel — пиксель, не зависящий от масштабирования — зависит от плотности экрана, но результат будет масштабироваться в соответствии с настройками размера шрифта пользователя. Рекомендуется для задания размеров шрифтов, чтобы текст подстраивался как под плотность экрана, так и под настройки, заданные пользователем.

android:typeface

Меняет используемый шрифт у TextView. Может иметь такие значения: normal, sans, serif, monospace. Где стандартный это нормальный, а остальные немного отличаются визуально. Свои шрифты можно указать при помощи другого тега или в исходном коде.

monospace

android:textStyle

На деле действует подобно android:textAppearance, но, в отличие от него может действовать не только на текст, а и на остальные аттрибуты.

android:textColorHighlight и android:textIsSelectable

android:textColorHighlight позволяет изменить цвет выделяемого текста, а android:textIsSelectable со значением true позволяет выделять обычный текст в TextView (чего изначально делать нельзя).

Код такой

Результат уже запущенного приложения:

android:textColorHint + android:hint

Цвет подсказки и сама подсказка соответственно. Цвет, как обычно, ресурс или HEX, а hint — это текст или ресурс строка.

Подсказка будет отображаться тогда, когда у нас не выведен никакой текст. Если вы не меняли цвет, то она будет светло-серого цвета.

Вообще это имеет большую пользу для полей ввода (EditText). Вы точно с такими сталкивались и не раз.

Текст может содержать ссылки. Они имеют свой особый цвет, а мы его можем изменить. Цвет, как и обычно: ресурс или HEX.

android:ellipsize + android:singleLine

Английские названия говорят за себя. Многоточие и одна линия. Последнее принимает логические значения true или false. Это и определяет, будет ли у нашего TextView одна строка или много.

Многоточие может иметь значения: end, marquee, middle, none, start. Очевидно, что изначально никакого многоточия нет, так что дефолтное это none. marquee нужно для создания автоматической прокрутки длинного текста, немного позже я покажу как, но нужны еще теги. А end, middle, start соответствуем названиям и выводит многоточие в конце, середине или начале строки.

А середину мы выбросили…

android:gravity

Определяет положение текста внутри TextView. В примере я развернул свой TextView на весь экран и указал своё положение текста.

Тег android:autoLink может иметь значения none, all, map, phone, email, web. В зависимости от указанных параметров в тексте могут быть автоматически созданы ссылки вместо обычного текста. Это может быть номер телефона, электронная почта, карта или даже веб-ссылка. И при нажатии на которую будет выполнено соответствующее действие (номер телефона — откроет клавиатуру для вызова, а почта — ваш почтовый клиент).

А android:linksClickable, который может быть true или false, определяет, можно ли будет нажать на эти ссылки.

android:maxWidth, android:maxHeight и их min версии

Понятно, что этими тегами можно указать максимально и минимально допустимые значения высоты и ширины в пикселях (вернее dp (density-independent pixels)) для TextView.

Хоть и ширина указана по контенту, но есть ограничение по максимальной ширине

android:bufferType

Определяет тип возвращаемого значения для функции getText(). По умолчанию имеет значение normal. Так же есть вариант spannable и editable. Возвращают соответственно Spannable и Editable + Spannable, тогда как тип normal зависит от типа заданного текста.

android:text

Уже знакомый нам тег, с его помощью мы указываем текст нашему TextView.

android:textScaleX

Позволяет указать множитель ширины текста. Принимает значения с плавающей запятой.

android:lines, android:lines, android:minLines

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

Тут будем краток и покажу все, что нужно одним примером. Думаю все и без лишних слов)

На этом пока все, есть еще теги, а потому чуть позже дополню.

Источник

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