在另一个类中访问TextWatcher - nullpointer异常

时间:2016-06-01 10:14:09

标签: android nullpointerexception android-textwatcher

我有一个活动,其中一个功能逻辑是在另一个类中计算的,这里我计算在编辑文本字段中输入内容时,我使用文本观察器。

MainActivity代码:

public class UnitConverter extends AppCompatActivity {
    public EditText input;
    .
    ......
    input = (EditText) findViewById(R.id.etInput);
    .........
    case Sample :
         new AnotherClass();
}

input字段上使用textwatcher,

AnotherClass代码:

public class AnotherClass {
UnitConverter ac = new UnitConverter();
public AnotherClass() {
    ac.input.addTextChangedListener(new TextWatcher() {

        public void afterTextChanged(Editable s) {
        }

        public void beforeTextChanged(CharSequence s, int start,
                                      int count, int after) {
        }

        public void onTextChanged(CharSequence s, int start,
                                  int before, int count) {
     }
  }
}

收到空指针错误,

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.EditText.addTextChangedListener(android.text.TextWatcher)' on a null object reference                                                                       

1 个答案:

答案 0 :(得分:1)

您需要将您的活动参考传递给另一个类,如下所示:

MainActivity代码:

name="tab3"

AnotherClass代码:

public class UnitConverter extends AppCompatActivity {
    public EditText input;
    .
    ......
    input = (EditText) findViewById(R.id.etInput);
    .........
    case Sample :
        new AnotherClass(UnitConverter.this);
}