2012-04-19 3 views
0

Целью здесь является проверка каждого поля, когда пользователь вводит контактную информацию и в конечном итоге применяет автоматический формат (заглавные буквы, написание и т. Д.) Для каждого поля.как выполнить проверку в текстовых полях

У меня это почти работает с использованием следующего кода, но оно основано на обратном вызове нажатия клавиши, и я действительно хочу включить функцию «потеря фокуса» для каждого текстового поля. Есть идеи?

public TextFormValidationCallback (CustomerFormActivity faja, String editTextName, Context context, EditText textField, 
            Button button, int rule) { 
    this.button = button; 
    this.textField = textField; 
    this.context = context; 
    this.ruleResourceId = rule; 
    this.editTextName = editTextName; 
    this.faja = faja; 
    this.res = context.getResources(); 
} 

public boolean onEditorAction(TextView v, int keyCode, KeyEvent event) { 
    if (event != null) { 

     // If the event is a key-down event on the "enter" button 
     if ((event.getAction() == KeyEvent.ACTION_DOWN) 
       && (keyCode == KeyEvent.KEYCODE_ENTER)) { 
      // Perform action on key press 
      Log.i("TextFormValidation", 
        "TextFormValidation callback activated!"); 
      if (validateTextFieldNotNullData(this.textField) 
        && (validateTextFieldFormat(this.textField, 
          ruleResourceId))) { 
       faja.setFieldValidationArray(getHeadingIndex(editTextName), 
         true); 
       if (faja.sumFieldValidations()) { 
        button.setClickable(true); 
        button.setText(R.string.addCustomer); 
       } 
      } else { 
       button.setText(R.string.next); 
       button.setClickable(false); 
      } 
      return true; 
     } 
    } else { 
    } 
    return false; 
} 
+0

пытаются SetFocus() на любой другой элемент управления в вашем случае щелчка. –

+1

Вы пробовали View.setOnFocusChangeListener()? – gngr44

ответ

0

Возможно, это может быть то, что вы ищете? TextView.onWindowFocusChanged()

+0

Я так не думаю (от чтения документов), но я напишу отдельный обратный вызов, чтобы убедиться. – cknowlto

+0

Нет слушателя, который я могу найти для onWindowFocusChanged(), и потеря фокуса не является редактором. – cknowlto

0

ОК, это не позволило мне опубликовать это вчера, но я понял это. Чтобы сохранить всех остальных с этого момента facepalm, я отправлю здесь фиксированный код.

public class TextFormValidationCallback implements OnFocusChangeListener { 

private Button button; 
private EditText textField; 
private Integer ruleResourceId; 
private Resources res; 
private Context context; 
private String editTextName; 
private CustomerFormActivity faja; 

public TextFormValidationCallback (CustomerFormActivity faja, String editTextName, Context context, EditText textField, 
            Button button) { 
    this.button = button; 
    this.textField = textField; 
    this.context = context; 
    this.editTextName = editTextName; 
    this.res = context.getResources(); 
    this.ruleResourceId = R.string.validates_everything; 
    this.faja = faja; 
} 

public TextFormValidationCallback (CustomerFormActivity faja, String editTextName, Context context, EditText textField, 
            Button button, int rule) { 
    this.button = button; 
    this.textField = textField; 
    this.context = context; 
    this.ruleResourceId = rule; 
    this.editTextName = editTextName; 
    this.faja = faja; 
    this.res = context.getResources(); 
} 

public void onFocusChange(View v, boolean hasFocus) { 

    Log.i("TextFormValidation", "TextFormValidation callback activated!"); 
    if (! hasFocus) { 
     if (validateTextFieldNotNullData(this.textField)) { 
      if (validateTextFieldvsFormat(this.textField, ruleResourceId)) { 
       faja.setFieldValidationArray(getHeadingIndex(editTextName), true); 
      } 
     } 
     if (faja.sumFieldValidations()) { 
      button.setClickable(true); 
      button.setText(R.string.addCustomer); 
     } 
     else { 
      button.setText(R.string.next); 
      button.setClickable(false); 
     } 
    } 
} 

}

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