Android: Кнопка Редактирования Текста Go


У меня есть редактировать текст, который определяется следующим образом.

<EditText  
android:layout_width="fill_parent" 
android:layout_height="wrap_content"
android:maxLines="1"
android:inputType="text" 
android:hint="@string/field_text"
android:id="@+id/field"
/>

Я хочу установить пользовательскую команду, чтобы, когда кто-то нажимает кнопку Done/Go на экранной клавиатуре, нажимается кнопка или просто запускаются методы, которые запускаются кнопкой. Я думаю, что это как-то связано с вариантами ime, но я не смог понять, как они работают. Заранее спасибо за любую помощь!

2 51

2 ответа:

вы хотите сочетание android: imeOptions и setOnEditorActionListener

<EditText android:id="@+id/some_edittext"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:imeOptions="actionSend">
</EditText>


some_edittext.setOnEditorActionListener(new OnEditorActionListener() {
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_SEND) {
            some_button.performClick();
            return true;
        }
        return false;
    }
});

очевидно, что вы должны изменить actionSend на действие, которое вы хотите, и обновить IME_ACTION_SEND соответственно.

посмотри setImeActionLabel метод (или imeActionLabel и imeActionId атрибуты) и setOnEditorActionListener чтобы настроить прослушиватель для ответа на события.