более одного edittext в Android

#android #android-edittext

#Android #android-edittext

Вопрос:

Я хочу создать поле ввода PIN-кода, как показано на рисунке ниже.я использовал для этого четыре edittext, но моя проблема в том, что я не могу перемещать курсор с одного edittext на другой и наоборот.Пожалуйста, помогите мне в этом.введите описание изображения здесь

Комментарии:

1. Что вы подразумеваете под «перемещением курсора с одного edittext на другой»?

2. например, когда пользователь вводит один символ / число в редактируемом тексте, поэтому курсор должен перейти к следующему edittext.

Ответ №1:

Я думаю, что что-то подобное будет делать то, что вы хотите:

 <LinearLayout
android:id="@ id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<EditText
    android:id="@ id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1" >


</EditText>
 <EditText
    android:id="@ id/editText2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1" >


</EditText>
<EditText
    android:id="@ id/editText3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1" >


</EditText>
<EditText
    android:id="@ id/editText4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1" >


</EditText>
 

Или вы хотите автоматически переходить от одного EditText к другому при заполнении?

Комментарии:

1. да, я хочу выполнить автоматический переход от одного edittext к другому после заполнения.

Ответ №2:

что значит, что вы не можете «перемещать курсор с одного edittext на другой и наоборот»??

Например, когда вы вводите один символ / число в редактируемом тексте, чтобы курсор перешел к следующему edittext?

Если это так, попробуйте GetFocus() с реализацией TextWatcher для EditText, у него есть обратный вызов, который вызывается после каждой введенной буквы.

Комментарии:

1. могу ли я использовать один и тот же textwatcher для всего edittext в этом случае, как я могу установить положение курсора?

2. TextWatcher знает, какой view / edittext вызвал его, поэтому просто получите view.getId() и создайте псевдоним кода с переменным регистром «if (id = 1) edittext2.getfocus(); if (id = 2) edittext3.getfocus(); и т.д.

3. np, если это не сработает, напишите это здесь, чтобы, возможно, кто-то другой сэкономил время, зная, что это не решение;-) С другой стороны, не забудьте отметить как лучший ответ, если он работает :))