Не появляется кнопка «Перейти» на клавиатуре Android

Я использую android:imeOptions="actionGo" для текстового поля редактирования. Он работает правильно на клавиатуре Android по умолчанию. Я получаю кнопку "GO". Но если я попытаюсь изменить метод ввода на swype или клавиатуру LG на своем устройстве LG, я не получаю «Go», вместо этого я получаю символ ввода. Почему это происходит. Мне нужна кнопка «Перейти» независимо от того, какую клавиатуру я использую. Пожалуйста, может ли кто-нибудь помочь мне в этом?


person Nemo    schedule 12.09.2011    source источник
comment
тогда у вас нет никакой ошибки, это ошибка разработчика клавиатуры...   -  person Niranj Patel    schedule 12.09.2011
comment
для тех, у кого похожая проблема, попробуйте добавить android:singleLine=true   -  person Shirish Herwade    schedule 22.01.2015


Ответы (2)


К сожалению, не все производители правильно реализуют свои собственные клавиатуры, поэтому у вас не будет кнопки «Перейти».

Например, на телефонах HTC вы не получите ничего, кроме «кнопки ввода», даже если вы установите действие поиска: android:imeOptions="actionSearch". На Motorola Droid работает нормально.

На некоторых телефонах вы должны установить imeOptions в java-коде, чтобы он работал. Вы можете попробовать на своем LG.

person ol_v_er    schedule 12.09.2011
comment
Неудача. Он по-прежнему будет работать на некоторых телефонах ваших пользователей. Клавиатура Самсунга обычно работает нормально. - person ol_v_er; 12.09.2011

Пожалуйста, добавьте следующие две строки в текст редактирования:

<EditText
    android:singleLine="true"
    android:imeOptions="actionGo"/>

Это активирует кнопку Go на программной клавиатуре.

А для прослушивания Go кнопка Добавить

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if(actionId== EditorInfo.IME_ACTION_GO){
                //perfrom your action
            }
            return false;
        }
    });
person Mahesh    schedule 22.11.2012