У меня была такая же проблема.Сразу после изменения editText VISIBILITY с GONE на VISIBLE мне пришлось установить фокус и отобразить экранную клавиатуру.Я добился этого, используя следующий код:
new Handler().postDelayed(new Runnable() {
public void run() {
// ((EditText) findViewById(R.id.et_find)).requestFocus();
//
EditText yourEditText= (EditText) findViewById(R.id.et_find);
// InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
// imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT);
yourEditText.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN , 0, 0, 0));
yourEditText.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP , 0, 0, 0));
}
}, 200);
Он работает для меня с задержкой 100 мс, но не удалось без задержки или только с задержкой 1 мс.
Комментируемая часть кода демонстрирует другой подход, который работает только на некоторых устройствах.Я тестировал на версиях ОС 2.2 (эмулятор), 2.2.1 (реальное устройство) и 1.6 (эмулятор).
Этот подход спас мне большую боль.