android - 在 Android 函数中设置 addTextChangedListener

标签 android

我有 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/

相关文章:

android - 如何为所有按钮添加一个通用监听器(无干扰)?

Android SwipeRefreshLayout 禁用拉动刷新

android - 媒体查询以区分横向模式和桌面查看中的 Galaxy?

android - 使用 ActionBarSherlock 进行基本的三选项卡导航

java - Android模拟器从本地FTP服务器下载报错 "227 Entering Passive Mode"/"Connection refused"

android - 在 Android 中删除 ListView 项目

android - 是否可以通过编程方式升级 Android 固件?

java - 如何使用 Java 在 UIAutomator 中使用 XY 坐标点击按钮?

android - fragment 布局中的 TextView 在调用 SetText() 时不会更改

java - Android YouTube 数据 API - Android key 设置不正确