Android:Android Studio emulator可以很好地执行代码,但手机上的实际应用程序会导致onChangedListener无法运行

Android:Android Studio emulator可以很好地执行代码,但手机上的实际应用程序会导致onChangedListener无法运行,android,android-studio,textwatcher,Android,Android Studio,Textwatcher,此应用程序的目的是在edittext中隐藏一条秘密消息,并在用户按下按钮时显示该消息。我遇到的问题是,要初始化机密消息,用户需要开始键入,然后使用一个句点来启动该过程。在按句点和直到用户按逗号之前,任何出现在edittext上的按键都会被替换,并有一个预先确定的字符串中的字符 在我的Nexus5上出现的问题是,当用户按下period时,它不会替换period 该代码在androidstudio模拟器中运行良好。我觉得真正不能正常工作的方法是onTextChanged方法或onKeyUp方法。我不

此应用程序的目的是在edittext中隐藏一条秘密消息,并在用户按下按钮时显示该消息。我遇到的问题是,要初始化机密消息,用户需要开始键入,然后使用一个句点来启动该过程。在按句点和直到用户按逗号之前,任何出现在edittext上的按键都会被替换,并有一个预先确定的字符串中的字符

在我的Nexus5上出现的问题是,当用户按下period时,它不会替换period

该代码在androidstudio模拟器中运行良好。我觉得真正不能正常工作的方法是onTextChanged方法或onKeyUp方法。我不知道该怎么办。我写了很多代码,这些代码总是在模拟器上运行,并在实际设备上取得了同等的成功。你怎么办


代码在粘贴箱上:

应该为软键盘调用onKeyUp,还是仅为硬件键盘保证?另外,
Activity#onKeyUp
文档中也有这样的内容:“当一个键被释放并且没有被活动中的任何视图处理时调用。因此,例如,当光标在TextView中时按键不会触发事件(除非它是指向另一个对象的导航),因为TextView处理它自己的按键。”基于此,可能实际触摸
EditText
不会触发键盘弹出,因为
EditText
本身会处理事件?我很确定我的目标是软键盘,因为现代安卓设备没有物理键盘。斯特肯特,我不知道你在暗示什么。我是否应该去掉onKeyUp而改用onTouch方法?它可能会对代码产生巨大影响。软键盘不一定需要调用onKeyUp。只有当键盘处于哑模式时才有可能发生这种情况,甚至可能不会发生这种情况。通常软键盘使用CommitteText,它不生成密钥events@Jayizzle如果您想从软键盘读取事件,请使用TextChangedWatcher。我同时使用onkeyup和TextChangedWatcher。我想我现在需要放弃onkeyup方法。