Android: удалить клавишу ввода с программной клавиатуры

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

Я хочу удалить эту клавишу ввода с программной клавиатуры. Является ли это возможным?


person Jay Mayu    schedule 09.08.2011    source источник
comment
Я думаю, что самый простой способ - android:inputType=textPersonName, он перестанет входить в textView..   -  person AndroidGeek    schedule 21.05.2014
comment
android:inputType="textNoSuggestions" удаляет клавишу возврата с программной клавиатуры.   -  person Ivan    schedule 13.07.2017


Ответы (6)


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

edittext.setOnKeyListener(new OnKeyListener() {

        public boolean onKey(View v, int keyCode, KeyEvent event) {


                if (event.getAction() == KeyEvent.ACTION_DOWN
                        && event.getKeyCode() ==       KeyEvent.KEYCODE_ENTER) {
                    Log.i("event", "captured");

                    return false;
                } 
                else if(event.getAction() == KeyEvent.ACTION_DOWN
                        && event.getKeyCode() == KeyEvent.KEYCODE_BACK){
                    Log.i("Back event Trigered","Back event");

                }

            }

            }
            return false;
        }
    });

Кроме того, вы должны отметить, что предоставление атрибута android:singleLine=true заставит ваш текст редактирования увеличиваться в размере при нажатии программной клавиши ENTER.

person Andro Selva    schedule 09.08.2011
comment
android:singleLine=true спас меня: D Попробуйте это. И спасибо за ответ @Andro. - person MilesDyson; 05.11.2013

Используйте : android:singleLine = "true" или edittext.setSingleLine();

И ваша клавиша ENTER исчезла

person mDroidd    schedule 22.12.2012

добавить этот тег в textView в xml

    android:singleLine = "true"
person ngesh    schedule 09.08.2011
comment
android:maxLines = 1 и android:lines = 1 на самом деле не работали... но android:singleLine = true работало.. Developer.Android не говорит, что android:singleLine устарел!! - person Mahesh; 17.05.2012

Внутри тега EditText вам нужно сделать только:

android:singleLine="true"

это удалить клавишу ввода на клавиатуре

ОБНОВЛЕНИЕ

Поскольку android:singleLine="true" устарело, я использую android:maxLines="1", чтобы избежать ввода в EditText. Как следует из названия метода, разрешено только N строк.

person Robert    schedule 23.05.2016
comment
это устарело сейчас - person Felipe R. Saruhashi; 17.01.2017

Новое обновление :

андроид: maxLines = "1"

person Ibrahim Sušić    schedule 28.11.2018

Если вы хотите что-то более общее в вашем .java:

boolean state = true; yourTextInputEditText.setSingleLine(state);

person Patapoom    schedule 22.03.2020