Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓:如何制作自己的键盘控制_Android - Fatal编程技术网

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

Android 安卓:如何制作自己的键盘控制,android,Android,我有一个edittext。当我从键盘上键入任何键时,我想用另一个字符代替该字符。例如,如果我输入a,它应该出现在编辑文本框中的b。请告诉我怎么做。我正在实现addTextChangedListener。但我不理解这种回调方法 editText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int star

我有一个edittext。当我从键盘上键入任何键时,我想用另一个字符代替该字符。例如,如果我输入a,它应该出现在编辑文本框中的b。请告诉我怎么做。我正在实现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

            }
        });

我不知道你的意思,但我试图弄明白:

您希望每次在编辑文本中写入字符时,应用程序都会写入下一个字母(例如a->b,b->c,c->d等)

这个方法你应该把它放在ContextChanged中。 您应该检索写入的字符的ASCII值,然后将其设置为:

char c = 'a'; //The value of ´a´ in ASCII e´97
int i = (int) c; 
int i++;
就像这样,你在i中保存了ASCII值'b'


它是如何工作的onTExtChanged方法您可以在这里查看-->

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

您希望每次在编辑文本中写入字符时,应用程序都会写入下一个字母(例如a->b,b->c,c->d等)

这个方法你应该把它放在ContextChanged中。 您应该检索写入的字符的ASCII值,然后将其设置为:

char c = 'a'; //The value of ´a´ in ASCII e´97
int i = (int) c; 
int i++;
就像这样,你在i中保存了ASCII值'b'


它是如何工作的方法onTExtChanged您可以在这里查看-->

onTExtChanged()中尝试以下内容:


onTextChanged()中尝试以下操作:


如果我每次按a,它不会变为b。另外,如果我们键入一些文本,然后删除所有文本,我们再次键入a,它不会改变…刚刚尝试过,它工作正常。你用大写字母“A”来代替吗?是的。。我得到了它。。。我没有调用editText.addTextChangedListener(这个);以前。。。非常感谢。但对每个角色使用开关盒并不是一个好主意。。。所有字母的任何其他逻辑…这取决于你的替代品是什么。如果存在某种顺序,可以使用ASCII。但对于随机的,你肯定需要某种映射。每次我按a,它不会变为b。另外,如果我们键入一些文本,然后删除所有文本,我们再次键入a,它不会改变…刚刚尝试过,它工作正常。你用大写字母“A”来代替吗?是的。。我得到了它。。。我没有调用editText.addTextChangedListener(这个);以前。。。非常感谢。但对每个角色使用开关盒并不是一个好主意。。。所有字母的任何其他逻辑…这取决于你的替代品是什么。如果存在某种顺序,可以使用ASCII。但是对于随机的,你肯定需要某种映射。还有什么其他的意思?你应该这样做的原因只是为了向某人隐藏字符串的值,但是有很多其他的方法来代替这个…试着更好地解释并告诉我解决方案是否有效。其他的意思。。。给自己的替换角色,而不是真正的角色。。。根据我的要求,我需要使用editText.addTextChangedListener(newTextWatcher()只是…还有什么其他的意思?你应该这样做的原因只是为了向某人隐藏字符串的值,但是有很多其他的方法来代替这个…试着更好地解释并告诉我这个解决方案是否有效。其他的意思是…给自己的替换字符而不是真实的字符…作为我的要求,我需要使用编辑Text.addTextChangedListener(仅限新的TextWatcher()。。。。