EditText с выбираемым текстом не фокусируется

Мое приложение содержит всплывающее окно с EditText. Я хочу, чтобы пользователь мог не только печатать и удалять текст, но также копировать и вставлять из и в поле EditText.

После поиска в Интернете я обнаружил, что следующий тег xml должен помочь.

android:textIsSelectable="true"

Я добавил строку, но затем я не могу открыть клавиатуру, нажав на поле EditText.

Я нашел много решений, которые открывают клавиатуру явно, но это не то, что я ищу, я хочу, чтобы она открывалась одним щелчком мыши и позволяла копировать и вставлять текст длинным щелчком, как EditText в браузере, для пример.

Добавление одного из следующих действий также не работает:

<requestFocus />

edit_text.requestFocus();

XML:

        <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textIsSelectable="true"
        android:text=""
        android:textSize="25sp"
        android:gravity="center_horizontal"
        android:inputType="text"
        android:layout_weight="0.1"
        android:id="@+id/editTextPopup_input"
        android:layout_marginEnd="20sp" />

Джава:

    public static void inflateEditTextPopup(int parent_id, String content_text, String edit_text_text, String act_button_text)
{
    LayoutInflater layoutInflater = (LayoutInflater)Main.main_activity.getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
    final View popupView = layoutInflater.inflate(R.layout.edit_text_popup, null);
    final PopupWindow window = new PopupWindow(popupView, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    window.setFocusable(true);
    final EditText input = (EditText)popupView.findViewById(R.id.editTextPopup_input);
    input.setText(edit_text_text);
    input.setFocusable(true);
    input.requestFocus();

    TextView content = (TextView)popupView.findViewById(R.id.editTextPopup_content);
    content.setText(content_text);

    Button btnClose = (Button)popupView.findViewById(R.id.editTextPopup_cancel);
    btnClose.setOnClickListener(new Button.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            window.dismiss();
        }
    });

    Button btnAct = (Button)popupView.findViewById(R.id.editTextPopup_ok);
    btnAct.setText(act_button_text);
    btnAct.setOnClickListener(new Button.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            handleEditTextPopupInput(window, input.getText().toString());
            window.dismiss();
        }
    });

    LinearLayout parent = (LinearLayout)Main.main_activity.findViewById(parent_id);
    window.showAsDropDown(parent);
}

LogCat:

W/TextView: TextView does not support text selection. Selection cancelled.

1 ответ

Решение

После долгих поисков в Интернете я обнаружил, что ответа нет, так как это ошибка в Android, EditText не может быть выбран из PopupWindow.

В моем случае я использовал что-то вроде кнопки "Вставить", что не очень удобно, но достаточно хорошо для меня.

Другие вопросы по тегам