Android 在已隐藏并聚焦编辑框后显示软键盘

Android 在已隐藏并聚焦编辑框后显示软键盘,android,show,hidden,android-softkeyboard,Android,Show,Hidden,Android Softkeyboard,我有一个问题,只在2.3设备上复制。 基本上,我有一个带有两个编辑文本的活动,这两个文本都是可聚焦的,用户可以在其中输入任何内容。 当我从纵向切换到横向时,我有一个要求,即不应显示虚拟键盘。为了实现这一点,在OnConfiguration Changed上,我使用InputMethodManager的HideOffInputFromWindow。 但是,如果说字段2在纵向模式下聚焦,当我切换到横向模式时,字段聚焦,但按下它不会打开键盘。 我甚至强迫它打开: edittext2.setOnClic

我有一个问题,只在2.3设备上复制。 基本上,我有一个带有两个编辑文本的活动,这两个文本都是可聚焦的,用户可以在其中输入任何内容。 当我从纵向切换到横向时,我有一个要求,即不应显示虚拟键盘。为了实现这一点,在OnConfiguration Changed上,我使用InputMethodManager的HideOffInputFromWindow。 但是,如果说字段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之前,最终使用这个讨厌的解决方法解决了这个问题:

这个方法怎么样,

 public static void setKeyboardFocus(final EditText primaryTextField) {
    (new Handler()).postDelayed(new Runnable() {
        public void run() {
            primaryTextField.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, 0, 0, 0));
            primaryTextField.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, 0, 0, 0));
        }
    }, 100);
}
 public static void setKeyboardFocus(final EditText primaryTextField) {
    (new Handler()).postDelayed(new Runnable() {
        public void run() {
            primaryTextField.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, 0, 0, 0));
            primaryTextField.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, 0, 0, 0));
        }
    }, 100);
}