既不是
etUsername.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS);
,也不
android:inputType=textCapSentences / textCapWords
为我的手机工作? (三星Galaxy S2 Android 2.3.4)
和
android:capitalize="sentences"
已被弃用
那我该怎么办?我阅读了很多主题,似乎所有这些方法都适用于提出问题的人。我还读了一个关于Word Capitalization并不总是被尊重的话题,因为它是一个建议而不是一个指令,但这对我没有帮助。我希望第一个字母大写......
答案 0 :(得分:0)
设置android:inputType =" textCapWords"你的edittext xml。
答案 1 :(得分:0)
这就是我所做的。 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);
}