У меня есть текст Редактирования, который определяется следующим образом.
<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 опциям, но я не смог выяснить, как они работают. Заранее спасибо за любую справку!
Вам нужна комбинация 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
для установки слушателя, реагирующего на события.