Android EditText («Текстовое поле»): автоматическая заливка первой буквы каждого слова во время ввода пользователем

Я знаю, что этот вопрос задал несколько раз, но ответы не работали в моем случае.

Я нашел некоторые из тех же вопросов и ответов в следующих ссылках, которые вообще не работали для меня.

LINK1

LINK2

В моем файле макета я определил свой EditText следующим образом.

<EditText android:id="@+id/test_editText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="16dp" android:layout_marginTop="90dp" android:inputType="textCapWords" android:ems="10" > 

Также в классе Activity в методе onCreate я добавил следующий код.

  EditText testEditText = (EditText) findViewById(R.id.test_editText); testEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS); 

Если кто-то испытал одну и ту же проблему и решил ее, мне хотелось бы услышать, что я сделал неправильно в моем случае. Благодарю.

Правки …

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

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

Solutions Collecting From Web of "Android EditText («Текстовое поле»): автоматическая заливка первой буквы каждого слова во время ввода пользователем"

 android:inputType="textCapWords" 

Работает на меня

Я использовал тот же код xml, который у вас есть в вопросах:

 <EditText android:id="@+id/test_editText" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="16dp" android:layout_marginTop="90dp" android:ems="10" android:inputType="textCapWords" > 

Просто проверьте, если вы переопределяете атрибут inputType в своей деятельности.

Просто попробуйте, не изменяя ничего в Activity.

 testEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS); or android:inputType="textCapSentences" 

Будет работать только в том случае, если включена автоматическая настройка клавиатуры устройства.

Это то, что я сделал. android:inputType="textCapWords" не работает для меня.

 public static void setCapitalizeTextWatcher(final EditText editText) { final TextWatcher textWatcher = new TextWatcher() { int mStart = 0; @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { mStart = start + count; } @Override public void afterTextChanged(Editable s) { //Use WordUtils.capitalizeFully if you only want the first letter of each word to be capitalized String capitalizedText = WordUtils.capitalize(editText.getText().toString()); if (!capitalizedText.equals(editText.getText().toString())) { editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { editText.setSelection(mStart); editText.removeTextChangedListener(this); } }); editText.setText(capitalizedText); } } }; editText.addTextChangedListener(textWatcher); } 

Вы пробовали Android: inputType = "textPersonName"

Вы должны попробовать с android: inputType = "textCapSentences"?

Вы пытаетесь создать эмулятор или устройство Android? Это работает для меня в эмуляторе Android: inputType = "textCapWords"

Просто добавьте этот код в свой EditText android:capitalize="words" он должен работать.

Раньше это был android:capitalize="words" , который теперь устарел. Рекомендуемая альтернатива – использовать android:inputType="textCapWords"

Обратите внимание, что это будет работать только в том случае, если включена автоматическая настройка клавиатуры устройства.

Чтобы сделать это программно, используйте следующий метод:

setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS);

ПОПРОБУЙТЕ это на своем макете …

 android:inputType="textCapWords|textCapSentences" 

Отлично работает на меня .. надеюсь, что он работает и на вас …