0
EditTexts
の束を持つサインアップ画面があり、それぞれにTextWatcher
がありますので、変更を聞き取り、エラーを表示または隠すことができます。例えばTextWatchersの重複コードを置き換えます
:
etFirstName.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if (etFirstName.getText().length() > 0) {
hideFirstNameError();
}
}
});
問題は、コードがすべてこのコードは私のeditTexts
のそれぞれのために何度も何度も繰り返されているとあまりにも肥大化していることです。
だから私はそこにきれいに書く方法があるのか疑問に思っていたのですか? TextWatcher
を拡張するカスタムクラスに置き換えようとしましたが、コンストラクタに変数として渡す必要があります。EditText
とこれが良い習慣であるかどうかはわかりません:あなたのActivities
以外のクラスに渡すアンドロイド?
public class CustomTextWatcher implements TextWatcher {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
//empty
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//empty
}
@Override
public void afterTextChanged(Editable s) {
//empty
}
}
、代わり
new TextWatcher()
の渡し:
ここで何をしていますか?hideFirstNameError();? –
@GaneshPokale 'tilFirstname.setError(null);tilFirstname.setErrorEnabled(false); 'editTextフィールドの対応する' TextInputLayout'からエラーを隠しています。 – Mes
どのコードが繰り返されますか? –