gpt4 book ai didi

Android EditText/TextView如何让每个单词以大写开头,单词的所有剩余字符都为小写

转载 作者:可可西里 更新时间:2023-11-01 18:44:51 34 4
gpt4 key购买 nike

我已经使用以下选项将单词的每个首字母设为大写

 <EditText
android:inputType="text|textCapWords"/>

在键入时,用户可以在键盘上选择更改字母的大小写,即具有此选项的用户可以轻松地键入 lowercase 字母。

此外,我希望我的 EditText 上的文本采用这种格式

单词的每个起始字母必须大写,单词的所有其他字母必须小写

意思是,当用户输入

单词的每个起始字母必须大写,单词的所有其他字母必须小写

,会自动转换成上面的格式。

我已经尝试使用 TextWatcherstring.split(\\s+) 来获取所有单词,然后让每个单词都遵循上述格式。但我总是以错误告终。因此,如果有任何解决方案,那就太好了。我希望它以 InputFilter.AllCaps 的方式工作。

到目前为止,这是我的代码

private void changeToUpperCase(String inputString) {
if (inputString != null && inputString.trim().length() > 0) {
// businessName.addTextChangedListener(null);
String[] splitString = inputString.split("\\s+");
int length = splitString.length;
StringBuffer stringBuffer = new StringBuffer();
for (int i = 0; i < length; i++) {
String convertedString = splitString[i];
stringBuffer.append(Character.toUpperCase(convertedString
.charAt(0)));
stringBuffer.append(convertedString.substring(1).toLowerCase());
stringBuffer.append(" ");
}
Log.i("changed String", stringBuffer.toString());
// businessName.setText(stringBuffer.toString());
stringBuffer.delete(0, stringBuffer.length());
stringBuffer = null;
// businessName.addTextChangedListener(this);
}
}

我从 TextWatcher 调用这个函数,afterTextChanged(Editable s)

最佳答案

在布局xml中,添加android:capitalize="sentences"

android:capitalize 的选项如下:

android:capitalize="none" :不会自动大写任何内容。

android:capitalize="sentences" :将每个句子的第一个单词大写。

android:capitalize="words" :将每个单词的首字母大写。

android:capitalize="characters" :这将大写每个字符。

更新:

由于 android:capitalize 已弃用,现在需要使用:

android:inputType="textCapWords"

关于Android EditText/TextView如何让每个单词以大写开头,单词的所有剩余字符都为小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21155111/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com