Есть поле Edittext, в которое пользователь должен ввести ответ, но при этом первый введенный символ должен быть правее, чем второй. Т.е. если пользователь последовательно вводит 123, то в итоге в Edittext отобразится 321. Можно ли как-то это реализовать используя 1 поле Edittext?
Ответ
Суть идеи, насколько я поняла, только в том, чтобы правильно перемещать курсор в поле editText, а именно так, чтобы после первого введенного символа курсор становился перед ним (т.е. слева).
Для этого нужно написать как-то так:
public class MainActivity extends AppCompatActivity implements TextWatcher{
EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.editText);
editText.addTextChangedListener(this);
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
editText.setSelection(0);
}
@Override
public void afterTextChanged(Editable s) {
}
}
Ну и в layout для editText соответственно указать свойство gravity right, чтобы все отвечало логике ввода текста справа-налево.
Комментариев нет:
Отправить комментарий