为侦听器创建单独的类

时间:2016-07-31 15:24:04

标签: android class listener textwatcher

为侦听器创建单独的类有什么好处或者有没有?下面哪个代码更有效?为什么?我应该何时创建单独的类?

TextWatcher

的单独类
mEditText.addTextChangedListener(mNumberWatcher);
TextWatcher mNumberWatcher = new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void afterTextChanged(Editable editable) {


        }
    };

没有单独的课程

mEditText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void afterTextChanged(Editable editable) {

        }
    });

2 个答案:

答案 0 :(得分:1)

当你需要在我们的代码中多次使用相同的监听器时,你应该为监听器使用单独的类,很多都没有。课程。

答案 1 :(得分:0)

您应该创建一个单独的类或内部静态,它们可以适应您的设计模式。正常的内部类或Anonymous实例化能够导致内存泄漏,因为它们包含主类的引用,并且可能不允许GC收集它,您应该避免使用它们。