Java 在android中输入文本字段时替换字符串
在EditText中输入字符串时,例如“Love Is Life”,在输入单词“Love”后输入空格,然后在单击字母“i”后,它会自动将其更改为大写字母“i” 这意味着字符串的每个空格后面的字符都需要大写,并且在EditText中输入字符时动态地进行更改,以模拟大小写格式 如果有人知道我的意思,请帮我Java 在android中输入文本字段时替换字符串,java,android,Java,Android,在EditText中输入字符串时,例如“Love Is Life”,在输入单词“Love”后输入空格,然后在单击字母“i”后,它会自动将其更改为大写字母“i” 这意味着字符串的每个空格后面的字符都需要大写,并且在EditText中输入字符时动态地进行更改,以模拟大小写格式 如果有人知道我的意思,请帮我 谢谢。您需要为字段实现a并收听空格,在空格后您需要将用户输入的字符更改为大写您需要为字段实现a并收听空格,在空格后您需要将用户输入的字符更改为大写您可以按照,如果etitText.getText.
谢谢。您需要为字段实现a并收听空格,在空格后您需要将用户输入的字符更改为大写您需要为字段实现a并收听空格,在空格后您需要将用户输入的字符更改为大写您可以按照,如果etitText.getText.toString.trim.length-1==''以后设置caps中的cha,则在键下函数上执行此操作。如果etitText.getText.toString.trim.length-1=''以后设置caps中的cha,则在键下函数上执行此操作。您可以向
编辑文本添加文本,并在每次通知文本时收到通知。使用它,您只需解析字符串以查找空格后的字符,并将其更新为大写
下面是我做的一个快速测试,它运行得非常好(远不是最佳的,因为每次编辑可编辑文件时,它都会再次调用侦听器…)
editText.addTextChangedListener(新的TextWatcher(){
@凌驾
public void onTextChanged(字符序列、int start、int before、int count){
//TODO自动生成的方法存根
}
@凌驾
更改前文本之前的公共void(字符序列s、int start、int count、int after){
//TODO自动生成的方法存根
}
@凌驾
公共无效后文本已更改(可编辑){
String String=s.toString();
int指数=-1;
而(((index=string.indexOf(“”,index+1))!=-1)和(&(index+1
为了避免经常被调用,您可以在char[]
中进行所有更改,并且只有在进行更改时才提交到可编辑的
一个更简单的解决方案可能是只在字符串上使用split(“”)
,将字符串[]
中的所有首字母替换为大写版本(如果需要),并且只提交一次到可编辑的
一个更简单的优化方法是向匿名类中添加一个布尔值,当您输入afterTextChanged时将其设置为try,当您退出它时将其设置为false,并且仅当布尔值为false时才处理该字符串 您可以在EditText
中添加一个TextWatcher,并在每次通知文本时收到通知。使用它,您只需解析字符串以查找空格后的字符,并将其更新为大写
下面是我做的一个快速测试,它运行得非常好(远不是最佳的,因为每次编辑可编辑文件时,它都会再次调用侦听器…)
editText.addTextChangedListener(新的TextWatcher(){
@凌驾
public void onTextChanged(字符序列、int start、int before、int count){
//TODO自动生成的方法存根
}
@凌驾
更改前文本之前的公共void(字符序列s、int start、int count、int after){
//TODO自动生成的方法存根
}
@凌驾
公共无效后文本已更改(可编辑){
String String=s.toString();
int指数=-1;
而(((index=string.indexOf(“”,index+1))!=-1)和(&(index+1
为了避免经常被调用,您可以在char[]
中进行所有更改,并且只有在进行更改时才提交到可编辑的
一个更简单的解决方案可能是只在字符串上使用split(“”)
,将字符串[]
中的所有首字母替换为大写版本(如果需要),并且只提交一次到可编辑的
一个更简单的优化方法是向匿名类中添加一个布尔值,当您输入afterTextChanged时将其设置为try,当您退出它时将其设置为false,并且仅当布尔值为false时才处理该字符串 我知道这是一个古老的故事,我在寻找同样的东西时偶然发现了它,并找到了完美的方法,所以我想我会分享给任何一个偶然发现这条线索的人。您可以使用android:inputType=“textCapWords
这样做将导致EditText
控件使每个单词都以大写字母开头,包括用户自己将其改为小写并转到下一个单词时!我知道这很旧,我偶然发现它在寻找同样的东西,并找到了完美的方法,所以我想我会为任何人分享它您可以使用android:inputType=“textCapWords
这样做将导致EditText
控件使每个单词都以大写字母开头,包括用户将其更改为小写并转到下一个单词
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());
}
}
}
});