Android Studio текст все заглавные буквы не работает
Как вы можете видеть, мое свойство text all caps не помечено галочкой, мое окно инструмента проектирования показывает текст в нижнем регистре, но мой эмулятор этого не делает. То же самое происходит и с моим телефоном. Пожалуйста, помогите.
Вот мой код xml: activity_main.xml:
2 ответа
Я пытаюсь сделать textarea, который будет вводить только заглавные буквы, даже если пользователь не удерживает shift или не имеет caps lock. В идеале это будет принимать входные данные независимо от того, что и просто автоматически сдвигать их на все заглавные буквы. Большинство способов, о.
Просто хочу спросить, Как установить текст на все заглавные буквы при вводе textbox Я пробовал это, но это не работает. void txt_AllCaps(object sender, KeyPressEventArgs e)
Для получения еще одного комментария,пожалуйста, ознакомьтесь с этим,
Текст кнопки может быть преобразован в верхний регистр темой вашего приложения, которая применяется ко всем кнопкам. Проверьте файлы тем / стилей для установки атрибута android:textAllCaps.
попробуйте это в своей кнопке
если это не сработает, чем попробовать это, мой друг, чем это
Похожие вопросы:
Я хочу использовать заглавные буквы в имени пакета проекта android. Так можем ли мы использовать заглавные буквы в названии пакета?
Я хочу заменить заглавные буквы пробелами. Пример строки- Hey MrsMccarthy . Я хочу, чтобы он вернулся ey rs ccarthy . Я пробовал разные способы, показанные здесь , чтобы адаптировать его к моей.
Как я должен преобразовать весь WPF TextBox входной текст в заглавные буквы?
Я пытаюсь сделать textarea, который будет вводить только заглавные буквы, даже если пользователь не удерживает shift или не имеет caps lock. В идеале это будет принимать входные данные независимо от.
Просто хочу спросить, Как установить текст на все заглавные буквы при вводе textbox Я пробовал это, но это не работает. void txt_AllCaps(object sender, KeyPressEventArgs e) < string s = (sender as.
Я пытаюсь использовать регулярные выражения, чтобы найти три последовательные заглавные буквы в строке. Я пробовал использовать: \b([A-Z])<3>\b как мой regex, который в какой-то степени работает.
Здравствуйте, я использую библиотеку Sherlock для достижения ActionBarTabs в Android, но есть какая-то странная проблема, что текст появляется в Tabs все заглавные буквы. Я не хочу делать все.
Я видел эту тему здесь: сначала строчные буквы текста, а затем заглавные. Возможно ли это с CSS? Но это был не чистый CSS. У меня есть div, который содержит этот текст:
После долгих исследований я не смог найти, почему этот код считает заглавные буквы в предложении, когда они все заглавные, но будет считать 0 заглавных букв, если я введу предложение, содержащее.
Мой стиль для моего TextInputLayout @color/neon_blue
Источник
Есть ли способ создать TextView в верхнем регистре всех его букв?
Я хотел бы иметь возможность назначить атрибут xml или стиль TextView это сделает любой текст, который он имеет во всех заглавных буквах.
атрибуты android:inputType=»textCapCharacters» и android:capitalize=»characters» ничего не делать и выглядеть так, как будто они для пользователя inputed text, а не TextView .
Я хотел бы сделать это, чтобы я мог отделить стиль от контента. Я знаю, что могу сделать это программно, но снова я хочу сохранить стиль из контента и кода.
7 ответов
Я, хотя это была довольно разумная просьба, но похоже, вы не можете сделать это в это время. какой полный провал. лол
обновление
теперь вы можете использовать textAllCaps форсировать все заглушки.
С помощью совместимости приложений textAllCaps в приложениях Android, поддерживающих старые API (менее 14)
есть один UI виджеты, которые поставляется с AppCompat с именем CompatTextView является пользовательским расширением TextView, который добавляет поддержку textAllCaps
для новых Android API > 14 вы можете использовать:
обновление:
как это происходит CompatTextView был заменен AppCompatTextView в последние библиотека appcompat-v7
это действительно очень разочаровывает, что вы не можете сделать это со стилями ( true ) или на каждом XML-файле макета с textAllCaps атрибут, и единственный способ сделать это на самом деле с помощью theString.toUpperCase () на каждой из строк при выполнении textViewXXX.setText (theString).
В моем случае, я не хотел иметь строки.toUpperCase () везде в моем коде, но иметь централизованный место для этого, потому что у меня были некоторые мероприятия и списки макеты элементов с TextViews, которые должны быть капитализированы все время (заголовок) и другие, которые этого не сделали. так. некоторые люди могут подумать, что это перебор, но я создал свой собственный класс CapitalizedTextView extending android.штучка.Поле TextView и переопределил метод setText, капитализирующий текст на лету.
по крайней мере, если дизайн изменяется или мне нужно удалить заглавный текст в будущих версиях, мне просто нужно изменить на обычный TextView в макете файлы.
Теперь примите во внимание, что я сделал это, потому что дизайнер приложения на самом деле хотел, чтобы этот текст (заголовки) в шапках по всему приложению независимо от первоначальной капитализации контента, а также у меня были другие обычные TextViews, где капитализация пришла с фактическим контентом.
и всякий раз, когда вам нужно использовать его, просто объявите его со всем пакетом в макете XML:
некоторые утверждают что правильный способ стиля текста в TextView-использовать SpannableString, но я думаю, что это было бы еще большим перебором, не говоря уже о более ресурсоемких, потому что вы будете создавать экземпляр другого класса, чем TextView.
Я придумал решение, которое похоже на Raczo’s в том, что я также создал подкласс TextView который обрабатывает создание текста в верхнем регистре.
разница в том, что вместо переопределения одного из setText() методы, которые я использовал аналогичный подход к тому, что TextView фактически делает на API 14+ (что, на мой взгляд, является более чистым решением).
если вы посмотрите в источник, вы увидите реализацию setAllCaps() :
на AllCapsTransformationMethod класс не является (в настоящее время) общедоступным, но все же источник также скачать. Я немного упростил этот класс (удалил setLengthChangesAllowed() метод), поэтому полное решение таково:
PixlUI проект позволяет использовать textAllCaps в любом textview или подклассе textview, включая: Кнопка, Полей EditText AutoCompleteEditText Флажок радиокнопка и еще несколько.
вам нужно будет создать свои textviews с помощью версии pixlui, а не из источника android, то есть вы должны сделать это:
PixlUI также позволяет установить пользовательский шрифт / шрифт, который вы помещаете в папку активов.
Я работа над Gradle вилка рамки PixlUI который использует gradle и позволяет указывать textAllCaps, а также шрифт из стилей, а не требовать их встроенного, как это делает исходный проект.
Кажется, что есть разрешение на установку мобильной клавиатуры, поэтому самый простой способ сделать это:
Источник
В Android EditText, как заставить писать заглавные буквы?
В моем приложении Android у меня есть другой EditText где пользователь может ввести информацию. Но мне нужно заставить пользователя писать заглавные буквы. Знаете ли вы, какую функцию вы делаете?
Android действительно имеет встроенный InputFilter только для этого !
Будьте осторожны, setFilters сбросит все остальные атрибуты, которые были установлены через XML (fe maxLines , inputType , imeOptinos …). Чтобы этого не произошло, добавьте фильтр (фильтры) к уже существующим.
Если вы хотите заставить пользователя писать заглавные буквы на вашем edittext, вам просто нужно добавить android:inputType=»textCapCharacters» а ваша клавиатура на устройстве будет установлена в верхний регистр.
Установите input type в TYPE_CLASS_TEXT| TYPE_TEXT_FLAG_CAP_CHARACTERS TYPE_CLASS_TEXT| TYPE_TEXT_FLAG_CAP_CHARACTERS . keyboard должна соблюдать это.
Вместо того, чтобы беспокоиться о работе с клавиатурой, почему бы просто не принять какие-либо вводные, строчные или прописные и преобразовать строку в верхний регистр?
Следующий код должен помочь:
Это удобно, поскольку пользователю не требуется знать, что вам нужна строка в верхнем регистре. Надеюсь это поможет.
Вы должны поместить android:inputType=»textCapCharacters» с Edittext в xml-файле.
Вы можете добавить android:textAllCaps=»true» poperty в свой XML-файл в EditText. Это приведет к тому, что клавиатура softinput появится во всех режимах «колпачки». Введенное значение появится в верхнем регистре.
Вы можете использовать два пути.
Первый путь:
Установите android:inputType=»textCapSentences» в вашем EditText.
Второй путь:
Когда пользователь вводит номер, вы должны использовать наблюдателя текста и менять малую и заглавную буквы.
Чтобы получить заглавную клавиатуру, когда щелкните edittext, используйте этот код в xml,
Основываясь на принятом ответе, этот ответ делает то же самое, но в Котлине. Просто для облегчения копирования: ·)
Я использую Visual Studio 2015 / Xamarin для создания моего приложения для Android 5.1 и Android 6.0 (тот же apk установлен на обоих).
Когда я указал android:inputType=»textCapCharacters» в моем axml, клавиатура AllCaps появилась, как ожидалось, на Android 6.0, но не на Android 5.1. Я добавил android:textAllCaps=»true» для моего axml и все еще не клавиатуру AllCaps на Android 5.1. Я установил фильтр с помощью EditText.SetFilters(new IInputFilter[] < new InputFilterAllCaps() >); И в то время как на мягкой клавиатуре отображаются символы нижнего регистра на Android 5.1, поле ввода теперь является AllCaps.
EDIT: Поведенческие различия, которые я наблюдал и предполагал связанными с ОС, были на самом деле потому, что у меня были разные версии Google Keyboard на тестовых устройствах. Как только я обновил устройства до последней Google Keyboard (выпущен в июле 2016 года на момент написания этой статьи), поведение «All Caps» было согласованным в разных ОС. Теперь на всех устройствах отображаются символы нижнего регистра на клавиатуре, но на вход SetFilters(new IInputFilter[] < new InputFilterAllCaps() >); все шапки из-за SetFilters(new IInputFilter[] < new InputFilterAllCaps() >);
Просто добавьте ниже код в свой EditText вашего xml-файла.
И если вы хотите разрешить как заглавный текст, так и цифры, используйте ниже код.
Источник
Использование заглавных букв для EditText
Я работаю над небольшим приложением для личного списка дел, и пока все работает достаточно хорошо. Есть одна маленькая причуда, которую я хотел бы выяснить. Каждый раз, когда я иду добавить новый элемент, у меня появляется диалог с представлением EditText внутри. Когда я выбираю представление EditText, клавиатура подходит для ввода текста, как и должно. В большинстве приложений по умолчанию кажется, что клавиша Shift удерживается для первой буквы . хотя, на мой взгляд, этого не происходит. Должен быть простой способ исправить, но я неоднократно искал ссылку и не могу ее найти. Я думаю, что для ссылки, загруженной адаптером, должен быть атрибут xml, но я не могу узнать, что это такое.
17 ответов
Статически (т.е. в XML-файле макета): установите android:inputType=»textCapSentences» на EditText .
Программно: вы должны включить InputType.TYPE_CLASS_TEXT в InputType из EditText , например
Можно комбинировать с текстом и его вариантами, чтобы запросить использование заглавных букв в первом символе каждого предложения.
Просто используйте android:inputType=»textCapWords» в своем элементе EditText.
Примените следующую строку в своем EditText в XML.
Это также позволит поддерживать многострочность.
Или android:inputType=»textCapSentences» будет работать только в том случае, если на клавиатуре вашего устройства включена настройка автоматического ввода заглавных букв.
Я столкнулся с той же проблемой, просто поделился тем, что узнал. Может помочь вам и другим .
Попробуйте это на своем макете. Добавьте строку ниже в свой EditText .
У меня отлично работает .. надеюсь, что он работает и у вас .
Чтобы использовать заглавные буквы, вы можете сделать следующее с текстом редактирования:
Чтобы сделать первую букву каждого слова заглавной :
Чтобы первая буква каждого предложения была заглавной: :
Чтобы сделать каждую букву заглавной:
Но это внесет изменения только в клавиатуру, и пользователь сможет изменить режим, чтобы писать буквы в маленьком регистре.
Таким образом, этот подход не очень ценится, если вам действительно нужны данные в формате с заглавными буквами, сначала добавьте следующий класс:
Теперь, чтобы писать каждое слово с большой буквы:
Чтобы использовать только первое слово с заглавной буквы:
Для использования заглавных букв в EditText вы можете выбрать два следующих типа ввода:
- android: inputType = «textCapSentences»
- android: inputType = «textCapWords»
textCapSentences
Это сделает первую букву первого слова заглавной в каждом предложении.
textCapWords Это позволит первой букве каждого слова заглавной.
Если вам нужны оба атрибута, просто используйте | подписать с обоими атрибутами
Я могу заверить вас, что оба ответа сделают первую букву заглавной и не сделают edittext одной строкой.
Если вы хотите сделать это в XMl, ниже приведен код
Если вы хотите сделать это в действии / фрагменте и т.д., ниже приведен код
PS: Если у вас нет другой собственности, вы можете легко добавить ее с помощью вертикальной черты «|» символ, просто убедитесь, что в xml нет пробела между свойствами атрибута
Если вы хотите, чтобы первая буква в каждом слове была заглавной, используйте android:inputType=»textCapWords»
Для лучшего понимания
И если вы пишете слово с заглавной буквы в каждом предложении, используйте его. android:inputType=»textCapSentences» эту строку в вашем xml. Я имею ввиду в твоем EditText.
Для лучшего понимания
В XML-файле макета:
На вашем EditText , чтобы первый алфавит первого слова каждого предложения был заглавной.
Или android:inputType=»textCapWords» в EditText, чтобы первый алфавит каждого слова был заглавной.
Попробуйте этот код, он будет начинаться с заглавной буквы во всех словах.
— установить addTextChangedListener для просмотра EditText
— Добавить TextWatcher
Установите тип ввода в XML, а также в файле JAVA, например,
android: inputType = «textMultiLine | textCapSentences»
Это также позволит многострочно и в файле JAVA,
Убедитесь, что для параметра Автоматическое использование заглавных букв на клавиатуре установлено значение Включено .
используйте этот код только для ввода заглавных букв в EditText
Раньше это был android:capitalize=»words» , который теперь устарел. Рекомендуемая альтернатива — использовать android:inputType=»textCapWords»
Обратите внимание, что это будет работать только в том случае, если на клавиатуре вашего устройства включена настройка автоматического ввода заглавных букв.
Чтобы сделать это программно, используйте следующий метод:
Источник