在EditText中输入字符串例如“Love is Life”时,输入单词“Love”后输入空格,然后如果点击字母'i'后自动需要将其更改为大写信'我'。在android中输入字符串时替换字符串
这意味着字符串的每个空格之后的字符需要在大写字母中,并且在EditText中输入字符时动态地进行更改以刺激骆驼格式格式。
如果有人知道意味着帮助我。
谢谢。
在EditText中输入字符串例如“Love is Life”时,输入单词“Love”后输入空格,然后如果点击字母'i'后自动需要将其更改为大写信'我'。在android中输入字符串时替换字符串
这意味着字符串的每个空格之后的字符需要在大写字母中,并且在EditText中输入字符时动态地进行更改以刺激骆驼格式格式。
如果有人知道意味着帮助我。
谢谢。
您可以将TextWatcher添加到EditText
,并在每次通知文本时收到通知。使用它,你可以解析字符串来查找空格后的字符,并将它们更新为大写。
这是我做的一个快速测试,效果非常好(远非最佳,因为每次编辑Editable时都会再次调用监听器...)。
editText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
String string = s.toString();
int index = -1;
while (((index = string.indexOf(' ', index + 1)) != -1) && (index + 1 < string.length())) {
// Get character
char c = string.charAt(index + 1);
if (Character.isLowerCase(c)) {
// Replace in editable by uppercase version
s.replace(index+1, index + 2, Character.toString(c).toUpperCase());
}
}
}
});
为了避免被调用到的时候,你可以做一个char[]
所有的变化,只提交到Editable
如果进行了更改。
一个简单的解决方案可能是只使用split(' ')
你的字符串,由大写版本替换String[]
所有首字母(如果需要),并承诺只有一次的Editable
。
更简单的优化是为您的匿名类添加布尔值,将其设置为当您输入afterTextChanged时尝试,退出时将其设置为false,并且只在布尔值为false时处理字符串。
您需要实现该领域的TextWatcher
,听的空间,一个空间后,你需要改变,如果etitText键升降功能的用户输入大写
你可以做到这一点的,字符。 getText.toString.trim.length-1 ==''稍后将设置为大写字母。
我知道这是旧的,我偶然发现它寻找相同的东西,并找到了完美的方式来做到这一点,所以我以为我会分享谁在这个线程上绊倒谁的人。其中包括当用户改变它为小写他们的自我和移动 - 您可以使用android:inputType="textCapWords
<EditText
android:inputType="textCapWords" />
否则将导致EditText
控制,使每一个字开始用大写字母在布局XML为EditText
设置继续下一个单词!