【问题标题】:keyboard not showing every time每次都不显示键盘
【发布时间】:2018-06-20 19:33:44
【问题描述】:
@Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (v == etpw2) {
            if (keyCode == KeyEvent.KEYCODE_DEL) {
                if (TextUtils.isEmpty(etpw2.getText().toString())) {
                    etpw2.setEnabled(false);
                    etpw2.setBackground(ContextCompat.getDrawable(activity, R.drawable.background_blackborder));
                    etpw1.setBackground(ContextCompat.getDrawable(activity, R.drawable.background_orangeborder));
                    etpw1.requestFocus();
                    etpw1.setEnabled(true);
                }
            }
        } else if (v == etpw3) {
            if (keyCode == KeyEvent.KEYCODE_DEL) {
                if (TextUtils.isEmpty(etpw3.getText().toString())) {
                    etpw3.setEnabled(false);
                    etpw3.setBackground(ContextCompat.getDrawable(activity, R.drawable.background_blackborder));
                    etpw2.setBackground(ContextCompat.getDrawable(activity, R.drawable.background_orangeborder));
                    etpw2.requestFocus();
                    etpw2.setEnabled(true);
                }
            }
        } else if (v == etpw4) {
            if (keyCode == KeyEvent.KEYCODE_DEL) {
                if (TextUtils.isEmpty(etpw4.getText().toString())) {
                    etpw4.setEnabled(false);
                    etpw4.setBackground(ContextCompat.getDrawable(activity, R.drawable.background_blackborder));
                    etpw3.setBackground(ContextCompat.getDrawable(activity, R.drawable.background_orangeborder));
                    etpw3.requestFocus();
                    etpw3.setEnabled(true);
                }
            }
        } else if (v == etpw5) {
            if (keyCode == KeyEvent.KEYCODE_DEL) {
                if (TextUtils.isEmpty(etpw5.getText().toString())) {
                    etpw5.setEnabled(false);
                    etpw5.setBackground(ContextCompat.getDrawable(activity, R.drawable.background_blackborder));
                    etpw4.setBackground(ContextCompat.getDrawable(activity, R.drawable.background_orangeborder));
                    etpw4.requestFocus();
                    etpw4.setEnabled(true);
                }
            }
        } else if (v == etpw6) {
            if (keyCode == KeyEvent.KEYCODE_DEL) {
                if (TextUtils.isEmpty(etpw6.getText().toString())) {
                    etpw6.setEnabled(false);
                    etpw6.setBackground(ContextCompat.getDrawable(activity, R.drawable.background_blackborder));
                    etpw5.setBackground(ContextCompat.getDrawable(activity, R.drawable.background_orangeborder));
                    etpw5.requestFocus();
                    etpw5.setEnabled(true);
                }
            }
        }
        return false;
    }

我用它来删除单词,但是当我按下键盘擦除按钮时,键盘会自动关闭。

我希望每次都打开键盘。但是现在它在按下键盘的后退按钮时隐藏了键盘。

请帮帮我。

【问题讨论】:

    标签: android keyboard


    【解决方案1】:

    带有可编辑控件的软键盘不会触发'OnKey'回调方法。

    https://developer.android.com/reference/android/text/method/KeyListener

    希望您设法获得文本字段的“OnKey”回调方法。

    如果您禁用任何文本字段,它会使键盘关闭。因此,在下面的代码中删除行'etpw2.setEnabled(false);'。所以,它保持键盘呈现。

    if (v == etpw2) {
            if (keyCode == KeyEvent.KEYCODE_DEL) {
                if (TextUtils.isEmpty(etpw2.getText().toString())) {
                    etpw2.setEnabled(false);
                    etpw2.setBackground(ContextCompat.getDrawable(activity, R.drawable.background_blackborder));
                    etpw1.setBackground(ContextCompat.getDrawable(activity, R.drawable.background_orangeborder));
                    etpw1.requestFocus();
                    etpw1.setEnabled(true);
                }
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-09
      • 1970-01-01
      • 1970-01-01
      • 2018-03-26
      • 1970-01-01
      • 2022-12-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多