android - TextWatchers、OnClickListeners 等

标签 android onclicklistener textwatcher

只是想知道在使用 TextWatchers、OnClickListeners 等方面是否有关于如何将它们放入代码中的最佳实践。

你会做以下事情吗:

textBox.addTextChangedListener(new TextWatcher()
    {
        public void afterTextChanged(Editable s)
        {               
            // some code here
        }

        public void beforeTextChanged(CharSequence s, int start, int count, int after)
        {
            // and/or here
        }

        public void onTextChanged(CharSequence s, int start, int before, int count)
        {
            // and/or even here
        }
    });

或者最好将 TextWatcher 等作为变量并像这样调用它:

textBox.addTextChangedListener(myTextWatcher);

我知道第二种在可重用性方面会好得多,但我很好奇是否只有一个实例,在这个例子中,TextWatcher。

最佳答案

我认为还有另一种选择是在您的主类上实现接口(interface),然后有类似这样的东西:

textBox.addTextChangedListener(myTextWatcher);

总共有 3 个选项,我使用了其中的 3 个。

如果 TextWatcheronClickListener 需要一些配置(例如 id 或行号)并多次使用,我创建自己的类并执行类似这个:

textBox1.addTextChangedListener(new MyTextWatcher(1, "Some Text"));
textBox2.addTextChangedListener(new MyTextWatcher(2, "Some Other Text"));
textBox3.addTextChangedListener(new MyTextWatcher(3, "Some Text 4"));

除此之外,如果它是一次性的而且很小,我会这样做:

mButton.setOnClickListener(new OnClickListener() {
    ....
});

我也用ButterKnife很多。据我所知,它没有 TextWatchers 的任何注释,但它有 onClickListeneronItemClickListeneronItemLongClickListener 等. 并且您可以使用注释将一个函数用于多个 Views

关于android - TextWatchers、OnClickListeners 等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26299291/

相关文章:

android - ListView 给出错误

Android:我已经删除了我的数据,但房间里仍然存在一些数据

java - Android 动态添加 subview - 充气机?需要一般建议

android - 如果用户愿意,永久删除 Android 按钮

java - 为 TextView 创建 switch case onClickListener

android - 如何在一台 mac 中同时拥有 eclipse 和 android studio?

android - 从以编程方式添加的按钮获取 OnClick()?

mvvm - 使用TextWatcher获取editText的旧值

android - 使用 TextWatcher 监听器显示已编辑的文本

android - TextWatcher 用于多个 EditText