Установите карат / курсор от edittext1 до edittext2 - PullRequest
2 голосов
/ 02 февраля 2011

Я уже искал, как это сделать, но не смог найти никакого решения. Здесь у меня есть edittext1 и edittext2, в то время как карат / курсор находится в edittext1, затем я нажимаю клавишу «Далее / Ввод» на программной клавиатуре, карат / курсор должен быть расположен в edittext2. Приведенный ниже фрагмент получил событие, когда я нажал клавишу «Далее / Ввод», но не сдвинул карат / курсор в edittext2.

    edittext1.setOnKeyListener(new View.OnKeyListener() 
    {       
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) 
        {
            if(event.getKeyCode() == KeyEvent.KEYCODE_ENTER)
            {
                Editable e = edittext2.getText();
                Selection.setSelection(e,e.length());
            }
            return false;
        }
    });

Любые материалы будут высоко оценены. Спасибо.

Ответы [ 2 ]

3 голосов
/ 02 февраля 2011

Вместо того, чтобы делать это в коде, вы не можете использовать android:nextFocusDown и android:nextFocusUp в своем XML? Вот несколько ссылок:

EDIT
С вашим принятым ответом похоже, что у вас есть решение, которое работает, однако я подумал, что и XML-маршрут тоже будет работать. Итак, вот рабочая версия ваших элементов макета:

<AutoCompleteTextView 
    android:id="@+id/autoCompleteTextViewRecipient"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:completionThreshold="1"
    android:inputType="text"
    android:maxLines="1"
    android:hint="To"
    android:imeOptions="actionNext"
    android:nextFocusDown="@+id/editTextComposeMessage"
    android:nextFocusUp="@+id/editTextComposeMessage"/>
<EditText
    android:id="@+id/editTextComposeMessage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:imeOptions="actionNext"
    android:nextFocusDown="@+id/autoCompleteTextViewRecipient"
    android:nextFocusUp="@+id/autoCompleteTextViewRecipient"/>

Различия в том, что AutoCompleteTextView теперь имеет nextFocusDown, EditText имеет nextFocusUp, и для обоих imeOptions установлено значение actionNext

1 голос
/ 03 февраля 2011

Попробуйте использовать это: if (event.getKeyCode () == KeyEvent.KEYCODE_ENTER) {edittext2.requestFocus ();
}

Курсор переместится на edittext2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...