2013-12-04 8 views
0

У меня есть поле EditText в моем приложении, и я бы хотел, чтобы мягкая клавиатура отображала кнопку OK по умолчанию. Я также хотел бы, чтобы эта кнопка ОК переключалась на кнопку ввода по умолчанию, когда я нажимаю кнопку смены, что позволяет создать новую строку. Я не сделал способ сделать это. Прямо сейчас я просто отобразить кнопку OK, используяДинамическая клавиатура Android soft OK/Enter

edit.setImeOptions(EditorInfo.IME_ACTION_DONE); 

на одной линии. Что мне нужно, это та же клавиатура, чем воспроизведенный в Keep приложении Google, в главном экране «Добавить быстрого примечание» поля

+0

Фактически, я хочу, чтобы кнопка действия была выполнена либо «Готово», либо «Далее» по умолчанию, а затем переключилась на новую строку при нажатии сдвига. – user1026605

ответ

1

Я посмотрел на Compose деятельности из источников Android AOSP и построил его:

я скопировал этот класс в мой тестовый проект (имя пакета com.example.test):

https://android.googlesource.com/platform/packages/apps/UnifiedEmail/+/5b8799a/src/com/android/mail/compose/EnterSubject.java

, а затем создали этот макет:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/hello_world" /> 

    <com.example.test.EnterSubject 
     android:id="@+id/editText1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/textView1" 
     android:inputType="textEmailSubject|textAutoCorrect|textCapSentences|textImeMultiLine|textMultiLine" 
     android:imeOptions="actionDone|flagNoExtractUi|flagNoFullscreen" 
     android:layout_below="@+id/textView1" 
     android:layout_marginTop="18dp" 
     android:ems="10" > 

     <requestFocus /> 
    </com.example.test.EnterSubject> 

</RelativeLayout> 

Это в основном рефакторинга версия этого файла: https://android.googlesource.com/platform/packages/apps/UnifiedEmail/+/5b8799a/res/layout/compose_subject.xml и этот файл: https://android.googlesource.com/platform/packages/apps/UnifiedEmail/+/5b8799a/res/values/styles.xml

И это имеет результат: при нажатии кнопки переключения открывает следующую кнопку в кнопку ввода.

+0

Спасибо, что это прекрасно. Я начал новую щедрость, потому что предыдущий истек. Я пришлю вам очки завтра – user1026605

Смежные вопросы