我有一个只能在 2.3 设备上重现的问题。基本上,我有一个带有两个 EditText 的活动,它们都是可聚焦的,用户可以在其中输入任何内容。当我从纵向切换到横向时,我有一个要求,即不应显示虚拟键盘。为此,在 OnConfigurationChanged 上,我使用 InputMethodManager 的 hideSoftInputFromWindow。但是,如果假设字段 2 在纵向模式下聚焦,当我切换到横向模式时,该字段已聚焦但按下它不会打开键盘。我什至强迫它打开:
edittext2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
InputMethodManager keyboard = ( InputMethodManager )
getSystemService( Context.INPUT_METHOD_SERVICE );
keyboard.showSoftInput( v, InputMethodManager.SHOW_FORCED);
但键盘也没有出现。
似乎,因为它已经聚焦并且之前的键盘被显示和隐藏,系统决定不打开另一个键盘。
你能建议我对此进行快速修复吗?
之后
最后在调用showSoftInput之前使用这个小讨厌的解决方法解决了这个问题:
edittext2.clearFocus
edittext2.requestFocus