Intereting Posts

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

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

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

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

Solutions Collecting From Web of "Как сделать кнопку «Edit» «Готово» Android и скрыть клавиатуру при нажатии?"

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

Сначала вам нужно установить атрибут android:imeOptions равный actionDone для целевого EditText, как показано ниже. Это изменит вашу кнопку «RETURN» на мягкой клавиатуре EditText на кнопку «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" /> 

Включите оба imeOptions и singleLine :

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

андроид: imeActionLabel = "Done"
Android: singleLine = "true "

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

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

Использовать это:

 android:singleLine="true" 

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

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

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

 editText.setImeOptions(EditorInfo.IME_ACTION_DONE); 

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

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

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

Для кода:

 editText.setImeOptions(EditorInfo.IME_ACTION_DONE); 

ActionDone используется при нажатии следующей клавиши на клавиатуре, в то время клавиатура скрыта. Используйте в Edit Text или 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"/> 

ЯВА

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

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

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

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

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

 android:imeActionLabel="whatever" 

На вашем EditText.

Или в использовании java-файла

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

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

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

Использовать это

  android:inputType="textAutoComplete"