Как установить несколько 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;
        }
    });

спасибо

1 ответов


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

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