android - AnySoftKeyboard 在我隐藏它之后保留垃圾数据

标签 android user-interface keyboard android-edittext

我有一个问题,只有在我使用 AnySoftKeyboard 时才会出现。 我正在尝试根据 EditText 焦点显示/隐藏键盘。 我使用了在 this post 中找到的方法

当我隐藏键盘时,有一个奇怪的行为 -

  • 当我旋转屏幕时,EditText 中的文本加倍。
  • 我认为它与 onCreate 方法有关,但我可以看到当我单击“后退”(Finish()) 时它也会发生。在 Activity 关闭之前我看到它一瞬间。
  • 当我开始一个新 Activity 时,(ActivityA 中的 ActivityB)然后单击“后退”一次不会执行任何操作(可能“关闭”不可见的键盘)。
  • 当我再次点击“后退”时,ActivityB 关闭,但我可以在一瞬间看到来自 ActivityA 键盘的文本在屏幕上以大字体显示(就像一个 100 毫秒的弹出窗口)

有没有人知道如何处理它?<​​/p>

最佳答案

显然这是 AnySoftKeyboard 中的一个错误。 我使用其他键盘时没有发生。

我通过在隐藏它之前对 EditText View 执行 setText 来解决它 - 它可能会重置键盘对象上的一些东西。

这是我的代码:

        View view = getWindow().getCurrentFocus();
        if (view==null)
            return;

        IBinder binder = view.getWindowToken();
        if (binder == null)
            return;

         // I used this to fix the strange behaviour
        if (view instanceof EditText)
            ((EditText)view).setText(((EditText)view).getText().toString());


        InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(binder, InputMethodManager.HIDE_NOT_ALWAYS);

令人惊讶的是它有效!

关于android - AnySoftKeyboard 在我隐藏它之后保留垃圾数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7716351/

相关文章:

android - 检测手机键盘是否滑出

keyboard - 方向键在 sqlplus 中不起作用

java - 设计 Android UI 的最佳实践是什么?

android - 如何在 Android 的通话屏幕上实现滑出式抽屉?

android - 在底部导航栏图标的顶部显示徽章

android - 以编程方式向用户请求权限?

c# Parallel.For 和 UI 更新?

c++ - 暂时使 MFC 功能区中的控件处于非事件状态或禁用状态

loops - AutoIt - 如何使用停止按钮结束 GUI 中的 while 循环

ios - UIViewController <UIKeyInput> 弹回时显示键盘