我喜歡每次用戶輸入一個字母到編輯文本中,將字母轉換爲大寫。這裏是我的代碼:動態設置字母爲大寫android
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
test = (EditText) findViewById(R.id.test);
test.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
beforeStr = s.toString();
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
char current = s.charAt(before);
newCurrent += String.valueOf(current).toUpperCase() + beforeStr;
}
@Override
public void afterTextChanged(Editable s) {
test.setText(newCurrent);
}
});
}
setText方法一次又一次地調用TextWatcher的所有方法,我的轉換永遠不會結束。
有人能幫助我嗎?
試試這個http://stackoverflow.com/a/25571410/1680426 –