Как программно установить несколько imeOptions

У меня есть контейнер FrameLayout в который я хочу добавить динамически EditText . Мне нужно установить два imeOptions : IME_ACTION_DONE и IME_FLAG_NO_EXTRACT_UI за это же время, но у меня есть проблема, как это сделать программно. Мое решение переопределяет мои imeOptions (я сейчас это хорошее поведение :), но я пробую все)

И мой вопрос: как настроить фокус после создания EditText программно? Этот метод editText.requestFocus(); Не работает для меня. Я хочу открыть клавиатуру после postCardContainer.addView(editText);

  postCardContainer.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); params.topMargin = (int) event.getY()-50; params.leftMargin = (int) event.getX()-50; EditText editText = new EditText(NewPostcardActivity.this); editText.setSingleLine(); editText.setBackgroundResource(R.color.transparent); editText.requestFocus(); editText.setLayoutParams(params); editText.setCursorVisible(true); editText.setImeOptions(EditorInfo.IME_ACTION_DONE); editText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI); postCardContainer.addView(editText); return false; } }); 

благодаря

Попробуйте, как показано ниже.

 editText.setImeOptions(EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_EXTRACT_UI);