2013-11-20 3 views
0

У меня есть EditText, и я хочу использовать его для ввода даты, я хочу сделать это, когда пользователь вставляет дату, мое приложение автоматически добавит '-' в EditText, поэтому только для пользователя необходимо ввести номер, ex;положить символ на edittext при вводе

user type: 21 -> device automatically 21- 
user type: 01 -> device automatically 21-01- 
user type: 2013 -> device automatically 21-01-2013 

Я пробовал это;

edtTxt1.addTextChangedListener(new TextWatcher() { 

    public void onTextChanged(CharSequence s, int start, int before, 
      int count) { 
    } 

    @Override 
    public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 
      Integer textlength1 = edtTxt1.getText().length(); 
      if (textlength1 == 2) { 
       edtTxt1.getText().insert(2, "-"); 
       edtTxt1.setSelection(3); 
       /*I also tried this, no luck 
       edtTxt1.setSelection(edtTxt1.getText().length());*/ 
      } 
    } 

    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, 
      int after) { 
      // TODO Auto-generated method stub 
     } 
    }); 

результат:

user type: 21 -> device automatically 21- 
user type: 01 -> device automatically 2101- 

Я не могу поставить курсор после '-'

EDIT Я попытался @svenoaks ответить, я был в состоянии поставить курсор после '-', но это это то, что происходит:

user type: 21 -> device automatically 21- 
user type: 0 -> device automatically 21-210 

ответ

2
edtTxt1.setText(edtTxt1.getText().insert(2, "-")); 
0

Я думаю, вы могли бы попробовать edtTxt1.setText("....")

1

Знаете ли вы, что вы можете использовать DatePicker для ввода даты от пользователя.

Предполагая, что вы хотите напечатать дд-мм-гггг, попробуйте это

if(textlength1==2||textlength1==5||textlength1==7) 
edtTxt1.setText(edtTxt1.getText().insert(textlength1, "-")); 
+0

DatePicker слишком большой для меня, я хочу использовать EditText, так как это больше подходит для моего приложения – Darjeeling

+0

здесь улучшили свой ответ. Удачи :) – Superuser

+0

То же самое происходит, как и svenoaks, но так как это полезно, я буду голосовать за ваш ответ, я найду другой способ, спасибо – Darjeeling

Смежные вопросы