在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
設置繼續下一個單詞!