Как сделать кнопку "Edit" "Готово" Android и скрыть клавиатуру при нажатии?

Когда пользователь нажимает кнопку EditView, Android открывает клавиатуру, чтобы пользователь мог писать в EditView.

Проблема заключается в том, что когда пользователь записывается, нет возможности скрыть клавиатуру. Пользователь должен нажать кнопку "Назад", чтобы скрыть клавиатуру.

Есть ли способ отобразить кнопку Done на клавиатуре, которая скроет клавиатуру?

Ответ 1

Используйте TextView.setImeOptions и передайте его actionDone. например textView.setImeOptions(EditorInfo.IME_ACTION_DONE);

Ответ 2

Сначала вам нужно установить атрибут android:imeOptions, равный actionDone для целевого EditText, как показано ниже. Это изменит вашу кнопку "RETURN" на вашей мягкой клавиатуре EditTexts на кнопку "DONE".

<EditText 
    android:id="@+id/edittext_done"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="Enter some text"
    android:imeOptions="actionDone"
    />

Ответ 3

Включите и imeOptions и singleLine:

<EditText 
   android:id="@+id/edittext_done"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:imeOptions="actionDone"
   android:singleLine="true"
   />

Ответ 4

андроид: imeActionLabel = "Готово"
андроид: SingleLine = "истинный
"

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

mainText.setHorizontallyScrolling(ложь);
mainText.setMaxLines( "Максимальное целочисленное значение, которое вы хотите предоставить" );

Ответ 5

Используйте это:

android:singleLine="true"

Ответ 6

Используйте эти две строки для EditText

android:imeActionLabel="Done"
android:singleLine="true"

или вы можете достичь этого Программно по этой строке.

editText.setImeOptions(EditorInfo.IME_ACTION_DONE);

Ответ 7

Если свойство не изменяется для виджета, лучше использовать его как android:imeOptions="actionDone" в макете xml.

Ответ 8

Использование:

android:imeActionLabel="Done"
android:singleLine="true" 

Ответ 9

Для кода:

editText.setImeOptions(EditorInfo.IME_ACTION_DONE);

Ответ 10

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

Если вы хотите, чтобы kb спрятался при нажатии Done, и вы установили android:imeOptions="actionDone" и android:maxLines="1" без, чтобы установить ваш EditText inputType, он будет NOT работа по умолчанию inputType для EditText не "text", как думают многие люди.

поэтому установка только inputType даст вам результаты, которые вы хотите независимо от, что вы настраиваете на него как "text", "number",... и т.д.

Ответ 11

ActionDone используется при нажатии следующей клавиши на клавиатуре в это время клавиатура скрыта. Используйте в Редактирование текста или AppcompatEdit

XML

1.1 Если вы используете AppCompatEdittext

    <android.support.v7.widget.AppCompatEditText
    android:id="@+id/edittext"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:imeOptions="actionDone"/>

1.2 Если вы используете Edittext

    <EditText
    android:id="@+id/edittext"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:imeOptions="actionDone"/>

JAVA

EditText edittext= (EditText) findViewById(R.id.edittext);
edittext.setImeOptions(EditorInfo.IME_ACTION_DONE);

Ответ 12

На самом деле вы можете настроить собственный текст на эту маленькую синюю кнопку. В xml файле просто используйте

android:imeActionLabel="whatever"

на вашем EditText.

Или в файле java используйте

etEditText.setImeActionLabel("whatever", EditorInfo.IME_ACTION_DONE);

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

Следует отметить, что это не приведет к появлению текста на всех клавиатурах на всех устройствах. Некоторые клавиши не поддерживают текст на этой кнопке (например, swiftkey). И некоторые устройства не поддерживают его. Хорошим правилом является то, что если вы видите текст уже на кнопке, это изменит его на все, что вам нужно.

Ответ 13

Используйте это

 android:inputType="textAutoComplete"