这是我的EditText,textCapWords不适用于三星键盘。 (三星S4)。有什么解决方法吗?
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:background="@android:color/transparent"
android:imeOptions="actionDone"
android:inputType="textCapWords"
android:maxLength="15"
android:padding="12dp"
android:textSize="20sp" />
答案 0 :(得分:1)
在XML中尝试:
android:textAllCaps="true"
答案 1 :(得分:1)
您是否以编程方式进行了尝试?
youredttxt.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS);
或强>
android:inputType="textCapWords|textCapSentences"
或强>
AFAIK这个被弃用了,但我不知道它是否有效,但你可以试试,
android:capitalize="words"
答案 2 :(得分:0)
可以尝试一下......为我工作......
android:inputType="textCapWords"
或者
android:inputType="textCapSentences"
或者
android:inputType="textCapWords"
对于Samsung S5 / S7,在名为“Auto Capitalize”的设置中有额外的设置,可以在Caps中制作第一个租船人。
答案 3 :(得分:0)
使用android:inputType="textCapWords"
,您可以更改句子中每个单词的第一个字母。
但是也许您之前将键盘更改为自定义,则应该转到设置并将键盘更改为默认键盘。希望对您有帮助。
答案 4 :(得分:-1)
使用此部分设备键盘不支持capWords或禁用设置
此代码Edittext每个单词首字母大写
youredittext.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
String capitalizedText = WordUtils.capitalize(youredittext.getText().toString());
if (!capitalizedText.equals(youredittext.getText().toString())) {
youredittext.addTextChangedListener(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) {
youredittext.setSelection(mStart);
youredittext.removeTextChangedListener(this);
}
});
youredittext.setText(capitalizedText);
}
}
});
下载jar以导入WordUtils
https://www.dropbox.com/s/olfjyhfrghxvfs2/orgwordutils.jar?dl=0