Как я могу получить "сделанную" кнопку в softkeyboard?

Как я могу создать кнопку "done" в моей программной клавиатуре (Samsung Galaxy 10.1, Android 3.1) при записи в EditText?

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

 <EditText
     android:id="@+id/comment"
     android:layout_width="772dp"
     android:layout_height="200dp"/>

Я получаю

enter image description here

Если возможно, я также хотел бы удалить эту кнопку "вложения".

Кто-нибудь может помочь?

ИЗМЕНИТЬ

Мне удалось получить кнопку "Готово", используя

android:inputType="textImeMultiLine",

но кнопка "возврат" исчезла...

Как я могу взять оба? (Я спросил этот новый вопрос здесь).

Ответы

Ответ 1

добавьте это в свой EditText xml:

android:imeOptions="actionDone"

или, чтобы установить его из кода:

yourEditText.setImeOptions(EditorInfo.IME_ACTION_DONE);

для более, прочитайте this

Ответ 2

Использование телефона Galaxy S2

Для кода ниже каждый EditText будет иметь кнопку возврата, которая добавляет новую строку:

EditText editText = new EditText(this);

Для кода ниже каждый EditText будет иметь следующую кнопку, которая перейдет к следующему полю, а в последней будет кнопка "Готово", которая отклонит клавиатуру:

EditText editText = new EditText(this);
editText.setInputType(InputType.TYPE_CLASS_TEXT);

Для кода ниже, никаких изменений, каждый EditText имеет кнопку возврата:

EditText editText = new EditText(this);
editText.setImeOptions(EditorInfo.IME_ACTION_DONE);

В приведенном ниже коде все EditText будут иметь кнопку "Готово", и все отклонят клавиатуру.

    EditText editText = new EditText(this);
    editText.setInputType(InputType.TYPE_CLASS_TEXT);
    editText.setImeOptions(EditorInfo.IME_ACTION_DONE);

Для макетов используйте следующий код:

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:inputType="text"
    android:imeOptions="actionDone"/>

Ответ 3

В моем эмуляторе Intel x86, по крайней мере, клавиша "Готово" появляется только в том случае, если вы укажете тип ввода: "телефон", "число", "текст", "текст",... с помощью android: inputType. Если вы не укажете какой-либо или вы установите "textMultiLine", "Готово" не появится.

android:imeOptions="actionDone"

и

editText.setImeOptions(EditorInfo.IME_ACTION_DONE);

кажутся бесполезными, поскольку они ничего не меняют ни в первом случае (где "Done" появляется в любом случае), либо во втором случае (поскольку "Done" не появляется)!

Ответ 5

Добавьте следующий код в ваш EditText в XML

android:imeOptions="actionDone"
android:imeActionLabel="@string/done"
android:singleLine="true"

Поле android:inputType="text" необязательно