Birden fazla TextWatcher
kullanarak her bir satırda farklı hesaplama işlemleri yapmak mümkündür. Örneğin, bir EditText
satırında kullanıcı sayı girdiğinde toplama işlemi yapılırken, başka bir satırda kullanıcı sayı girdiğinde çarpma işlemi yapılabilir
Aşağıda, iki EditText
satırı için farklı TextWatcher
sınıfları kullanarak toplama ve çarpma işlemlerini nasıl yapabileceğinize dair bir örnek kod verdim
EditText editText1 = findViewById(R.id.editText1);
EditText editText2 = findViewById(R.id.editText2);
// Toplama işlemi için TextWatcher sınıfı
TextWatcher additionTextWatcher = new TextWatcher() {
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
// EditText'te herhangi bir değişiklik yapıldığında toplama işlemi yapılır
int value1 = editText1.getText().toString().isEmpty() ? 0 : Integer.parseInt(editText1.getText().toString());
int value2 = editText2.getText().toString().isEmpty() ? 0 : Integer.parseInt(editText2.getText().toString());
int result = value1 + value2;
// sonucu başka bir yere yazdırabilirsiniz
}
public void afterTextChanged(Editable s) {
}
};
// Çarpma işlemi için TextWatcher sınıfı
TextWatcher multiplicationTextWatcher = new TextWatcher() {
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
// EditText'te herhangi bir değişiklik yapıldığında çarpma işlemi yapılır
int value1 = editText1.getText().toString().isEmpty() ? 1 : Integer.parseInt(editText1.getText().toString());
int value2 = editText2.getText().toString().isEmpty() ? 1 : Integer.parseInt(editText2.getText().toString());
int result = value1 * value2;
// sonucu başka bir yere yazdırabilirsiniz
}
public void afterTextChanged(Editable s) {
}
};
// Her bir EditText'e ilgili TextWatcher'ı ekleyin
editText1.addTextChangedListener(additionTextWatcher);
editText2.addTextChangedListener(multiplicationTextWatcher);