Set addTextChangedListener to Android function

I have 5 addTextChangedListener for 5 text editing. I want to configure them in one function, so I just need to pass the identifier editttext and addTextChangedListener to get on it. How can I do this, I am not getting this. Please help me with this.

code

mobileNumber.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { mobileNumber.setError(null); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable s) { mobileNumber.setError(null); } }); mobileNumber2.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { mobileNumber2.setError(null); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable s) { mobileNumber2.setError(null); } }); mobileNumber1.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { mobileNumber1.setError(null); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable s) { mobileNumber1.setError(null); } }); 

All addTextChangedListener do the same for different identifiers. Thus, it is possible in android to configure it as a function, and we just need to pass the identifier, and addTextChangedListener will be applied to this

How to tell

 public class BookingClassAddListenerOnTextChange implements TextWatcher { private Context mContext; EditText mEdittextview; public BookingClassAddListenerOnTextChange(Context context, EditText edittextview) { super(); this.mContext = context; this.mEdittextview= edittextview; } @Override public void afterTextChanged(Editable arg0) { // TODO Auto-generated method stub } @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stub } @Override public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stub } public void addTextChangedListener( BookingClassAddListenerOnTextChange bookingClassAddListenerOnTextChange) { // TODO Auto-generated method stub } } 
+6
source share
2 answers

You must create the Listener class like this, just change the parameters in the constructor to accept the EditText identifier to which you want to add a listener.

 public class addListenerOnTextChange implements TextWatcher { private Context mContext; EditTextView mEdittextview; public addListenerOnTextChange(Context context, EditTextView edittextview) { super(); this.mContext = context; this.mEdittextview= edittextview; } @Override public void afterTextChanged(Editable s) { } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { //What you want to do } } } 

You name them in your activity

 mobileNumber2.addTextChangedListener(new addListenerOnTextChange(this, mobileNumber2)); 

Change the settings again as necessary.

+10
source

If all five behave the same, then you can create a TextWatcher object and pass it on to everyone.

 TextWatcher tw = new TextWatcher() { /* code goes here */ /* viewOnFocus can be used here */ } mobilenum1.addTextChangedListener(tw); mobilenum2.addTextChangedListener(tw); mobilenum3.addTextChangedListener(tw); 

The viewOnFocus variable viewOnFocus set via the onFocusChange listener.

 OnFocusChangeListener of = new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if (hasFocus) { viewInFocus = view; } } }; mobile1.setOnFocusChangeListener(of); mobile2.setOnFocusChangeListener(of); mobile3.setOnFocusChangeListener(of); 
+1
source

Source: https://habr.com/ru/post/952715/


All Articles