我有 5 个 addTextChangedListener 用于 5 个编辑文本。我想在一个函数中自定义它们,这样我就必须传递 editttext 的 id 并在其上应用 addTextChangedListener。我怎么能这样做我不明白这个.请帮我解决这个问题。
代码
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);
}
});
所有 addTextChangedListener 都在为不同的 id 做同样的事情。那么在 android 中是否可以将其自定义为一个函数,我们必须只传递 id 并且 addTextChangedListener 将应用于它
按照建议
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
}
}
最佳答案
你应该像这样创建一个Listener类,修改构造函数中的参数即可 接受要向其添加监听器的 EditText ID。
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
}
}
}
你在 Activity 中这样称呼他们
mobileNumber2.addTextChangedListener(new addListenerOnTextChange(this, mobileNumber2));
再次根据需要修改参数。
关于android - 在 Android 函数中设置 addTextChangedListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18503809/