Android:如何制作自己的键盘控件

时间:2015-07-07 06:43:42

标签: android

我有一个edittext。当我从键盘输入任何键时,我想要的是另一个角色来代替那个角色。例如,如果我键入a,它应该出现在编辑文本框中。请任何人告诉我如何做到这一点。我正在实现addTextChangedListener。但我不明白这种回调方法。

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) {
                // TODO Auto-generated method stub

            }
        });

2 个答案:

答案 0 :(得分:0)

我不确定你的意思,但我试图弄清楚:

您希望每次在editText中写一个字符时,app都会写下一个字母(例如a-> b,b-> c,c-> d等等......)

这个方法你应该把它放在onTextChanged中。 你应该检索你写的char的ASCII值,然后像这样:

char c = 'a'; //The value of ´a´ in ASCII e´97
int i = (int) c; 
int i++;

所以像这样你已经保存了'b'的ASCII值。

如何使用onTextChanged的方法,你可以看看这里 - > http://www.learn-android-easily.com/2013/06/using-textwatcher-in-android.html

答案 1 :(得分:0)

onTextChanged()内填写此内容:

String str = editText.getText().toString();
if (str.length() == 0)
    return;
editText.removeTextChangedListener(this);
switch (str.charAt(str.length() - 1)) {
    case 'a':
        str = str.substring(0, str.length() - 1) + 'b';
        editText.setText(str);
        editText.setSelection(str.length());
        break;
}
editText.addTextChangedListener(this);
相关问题