用android softkeyboard更改键入的字符

时间:2012-03-21 14:33:47

标签: java android android-edittext android-softkeyboard

当用户在EditText中输入一个句子时,如何替换某些字符?例如,当用户类型“Hello”立即变为“Hella”时!我希望在用户类型

时更改一些字符

2 个答案:

答案 0 :(得分:1)

您必须使用文本观察程序。 etMessage是一个EditText,请参阅以下代码:

    etMessage.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {

        }

        @Override
        public void afterTextChanged(Editable s) {
            String myString = s.toString();
            Toast.makeText(getApplicationContext(), myString,
                    Toast.LENGTH_SHORT).show();
            if (myString.length() > 0)
                if (myString.charAt(myString.length() - 1) == 'o') {
                    etMessage.setText("Hello");
                }
        }
    });

答案 1 :(得分:0)

我不确定你对这个问题的意思,但我会尽力回答我最好的理解...... 对EditText字段使用TextChangedListener。 例如:

mySlangMaker.addTextChangedListener(new CustomTextWatcher(mySlangMaker));

private class CustomTextWatcher implements TextWatcher {

private EditText mEditText;

public CustomTextWatcher(EditText mySlangMaker) {
    mEditText = mySlangMaker;
}

public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}

public void onTextChanged(CharSequence s, int start, int before, int count) {
}

public void afterTextChanged(Editable s) {
}

}

类似的东西......在适当的方法中添加你想要的逻辑.. :)

希望这是你正在寻找的......:)