Есть ли способ выделить мой текст редактирования?

Я отключил программную клавиатуру в своем приложении, потому что у меня есть собственная пользовательская клавиатура. Но проблема в том, что когда я нажимал на тексты редактирования, чтобы вводить данные через свою пользовательскую клавиатуру, эти тексты редактирования вообще не выделялись. Даже курсор не виден внутри этого соответствующего щелкнутого текста редактирования. Почему всегда возникают побочные эффекты при отключении программной клавиатуры? Я попробовал все предложения, которые есть в исходниках, включая stackoverflow, но ничего не получилось. Могу ли я получить идеальное решение, чтобы выделить текст редактирования при нажатии?


person Kanth    schedule 03.09.2012    source источник


Ответы (2)


вам нужно вызвать textView.requestFocus() при нажатии таким образом, чтобы ваш editText мог быть выделен

не забудьте также добавить в свой XML-файл этот атрибут android:focusableInTouchMode="true" к вашему EditText

person Tomer Mor    schedule 03.09.2012
comment
Спасибо за ваш ответ. Но и это не сработало. Я создал тексты редактирования динамически, поэтому, когда я добавил setFocusableInTouchMode(true), появляется экранная клавиатура. И когда я добавил requestFocus, тоже ничего не изменилось. - person Kanth; 04.09.2012

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

    //disable keypad
    et.setOnTouchListener(new OnTouchListener(){
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            int inType = et.getInputType(); // backup the input type
            et.setInputType(InputType.TYPE_NULL); // disable soft input
            et.onTouchEvent(event); // call native handler
            et.setInputType(inType); // restore input type
            et.requestFocus(); // request focus
            return  true; // consume touch even
        }
        });
person Georg    schedule 03.09.2012
comment
Спасибо за ваше время. Но и в моем случае это не сработало. На самом деле есть много вопросов, на которые нет ответа, или ответы на некоторые вопросы расплывчаты, например, программная клавиатура, отсутствующий файл R.java и т. д., - person Kanth; 04.09.2012
comment
Что не получилось? Клавиатура появилась или курсор не появился? - person Georg; 04.09.2012