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