Android 仅当在任何编辑文本之外单击时才隐藏数字键盘
我有三种不同的编辑文本,限制只输入数值,因此点击任何一种编辑文本都会打开数字键盘 我尝试为所有编辑文本实现setOnFocusChangeListener,这确保当用户点击任何编辑文本之外的任何位置时隐藏键盘Android 仅当在任何编辑文本之外单击时才隐藏数字键盘,android,touch,android-softkeyboard,Android,Touch,Android Softkeyboard,我有三种不同的编辑文本,限制只输入数值,因此点击任何一种编辑文本都会打开数字键盘 我尝试为所有编辑文本实现setOnFocusChangeListener,这确保当用户点击任何编辑文本之外的任何位置时隐藏键盘 editText1.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) {
editText1.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
hideKeyboard(v);
}
}
});
editText2.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
hideKeyboard(v);
}
}
});
editText3.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
hideKeyboard(v);
}
}
});
下面是“隐藏板”的实现
public void hideKeyboard(View view) {
InputMethodManager inputMethodManager =(InputMethodManager)getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
不过,当我将焦点从一个EditText更改为另一个EditText时,键盘会隐藏。这种行为可能会让用户感到沮丧
我如何处理它,避免不必要的隐藏键盘
editText1.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
hideKeyboard(v);
}
}
});
editText2.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
hideKeyboard(v);
}
}
});
editText3.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
hideKeyboard(v);
}
}
});
p.S我需要确保键盘在任何情况下都是数字而不是字母。感谢MarianoZorrila纠正了我解决问题的方法。
以下是我为解决此问题所做的更改
<RelativeLayout
...
...
android:id="@+id/parent">
感谢MarianoZorrila纠正了我解决问题的方法。
以下是我为解决此问题所做的更改
<RelativeLayout
...
...
android:id="@+id/parent">
当用户点击其他EditText时,上一个EditText将失去焦点。。。然后,隐藏键盘。也许你可以在“如果用户关注:RelativeLayout、LinearLayout等”中考虑隐藏键盘,而不是隐藏在键盘之外的任何地方EditText@Mariano不幸的是,您建议的方式显示了按字母顺序排列的键盘(因为我的PS),您可以在布局中发布exittext xml吗?您可以将编辑文本设置为始终为数字。@MarianoZorrilla非常感谢您的帮助,您的方法很有效。很抱歉没有感谢你早些时候的帮助。我有几天没有上网。没问题:)很高兴我能帮上忙当用户点击其他EditText时,前一个EditText会失去焦点。。。然后,隐藏键盘。也许你可以在“如果用户关注:RelativeLayout、LinearLayout等”中考虑隐藏键盘,而不是隐藏在键盘之外的任何地方EditText@Mariano不幸的是,您建议的方式显示了按字母顺序排列的键盘(因为我的PS),您可以在布局中发布exittext xml吗?您可以将编辑文本设置为始终为数字。@MarianoZorrilla非常感谢您的帮助,您的方法很有效。很抱歉没有感谢你早些时候的帮助。我有几天没上网。没问题:)很高兴我能帮上忙