android - 每次都不显示键盘
问题描述
@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;
}
我用它来删除单词,但是当我按下键盘擦除按钮时,键盘会自动关闭。
我希望每次都打开键盘。但是现在它在按下键盘的后退按钮时隐藏了键盘。
请帮我解决这个问题。
解决方案
带有可编辑控件的软键盘不会触发“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);
}
}
推荐阅读
- java - ApachePOI:NoClassDefFoundError:org.apache.poi.openxml4j.exceptions.invalidFormatException
- java - 重新打开 GUI 不显示保存的数据
- c - 使用C从字符串中删除连续重复的字符
- javascript - JavaScript中带有未知参数的柯里化函数
- r - R找到给定尺寸的所有可能方向
- .htaccess - 如何重定向 301 /subfolder/page-url https://mydomain/subfolder/new-page-url
- react-native - 文本输入的 KeyboardAvoidingView 问题
- r - 根据 min 计算特定行
- r - 每个组的频率范围的 R- Max 和 Min 逻辑中的 Bin Range
- python - 生成 Padovan 序列