0
私はこれらのためにモバイル、パスワード、電子メールという3つのEdittextを持っています。それらのために別々のTextwatcherを実装しましたが、複数のEdittextに対して1つのTextwatcherを作成したいと思います。複数のEditextでTextwatcherを作成するには?
コード: -
private final TextWatcher m_EmailWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
checkForEmptyField();
}
@Override
public void afterTextChanged(Editable s) {
/*check whether SoftKeyPad open or hide*/
m_MainLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int heightDiff = m_MainLayout.getRootView().getHeight() - m_MainLayout.getHeight();
//noinspection StatementWithEmptyBody
if (heightDiff > 100) { // if more than 100 pixels, its probably a keyboard...
} else {/*if hide then clear focus from Password Edit text*/
m_EmailEditText.clearFocus();
m_Email = m_EmailEditText.getText().toString().trim();
if (isValidEmail(m_Email) && m_Email.split("@")[0].length() <= 64 && (m_Email.split("@")[1].length() >= 2 && m_Email.split("@")[1].length() <= 255)) {
} else {
m_EmailEditText.setError("Please enter valid Email Id");
}
}
}
});
}
};
private final TextWatcher m_PassWordWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
checkForEmptyField();
}
@Override
public void afterTextChanged(Editable s) {
}
};
private final TextWatcher m_MobileWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
checkForEmptyField();
}
@Override
public void afterTextChanged(Editable s) {
}
};
コードでこのクラスを追加する方法 – Raghav
更新された回答を参照してください。 – vidulaJ
しかし、私は複数のクラス – Raghav