android:inputType="textCapWords"
适合我
我在问题中使用了相同的xml代码:
只需检查您是否覆盖了Activity中的inputType属性。
只需尝试不改变活动中的任何内容。
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”?
你在试用Emulator还是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"
在我身上工作得很好..希望它对你有用…