2013-03-18 4 views
0

Я хотел бы сделать поле EditText с форматом следующего вида: 0000 AA.Формат ввода EditText

Возможно ли, чтобы цифровая клавиатура отображалась на первых четырех номерах, а затем автоматически создает пробел, а затем появляется нормальная клавиатура?

Как я могу это сделать с помощью C#?

У кого-то есть идея?

ответ

2

Это должно сделать трюк:

EditText zipcode = FindViewById<EditText>(Resource.Id.zipcode); 
zipcode.InputType = Android.Text.InputTypes.ClassNumber; 
bool numberMode = true; 
zipcode.TextChanged += (object sender, Android.Text.TextChangedEventArgs e) => { 
    if(zipcode.Text.Length == 4){ 
     if(numberMode){ 
      numberMode = false; 
      zipcode.Text = zipcode.Text + " "; 
      zipcode.SetSelection(zipcode.Text.Length); 
     } 
    } 

    if(zipcode.Text.Length > 4){ 
     numberMode = false; 
     zipcode.InputType = Android.Text.InputTypes.ClassText; 
    } 

    if(zipcode.Text.Length <= 4){ 
     numberMode = true; 
     zipcode.InputType = Android.Text.InputTypes.ClassNumber; 
    } 
}; 
+0

Также обратите внимание на: http://forums.xamarin.com/discussion/comment/6914/#Comment_6914, который делает что-то подобное. – Cheesebaron