首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >addTextChangedListener空指针异常

addTextChangedListener空指针异常
EN

Stack Overflow用户
提问于 2014-04-15 20:02:57
回答 5查看 1.4K关注 0票数 2

我一直在寻找其他问题,但都没有解决我的问题。

我有一个editText,我需要实现这个字段的addTextChangedListener,这样我就可以实时更新其他文本视图的值。

代码语言:javascript
复制
public class MainActivity extends ActionBarActivity {



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    EditText billText = (EditText)findViewById(R.id.billValue);
    billText.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
            // TODO Auto-generated method stub

        }

        @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

        }


    });

我的代码中有什么我可能遗漏的错误吗?

EN

回答 5

Stack Overflow用户

发布于 2014-04-15 20:16:06

据我所知,下面这行代码会导致NullPointerException,因为您的editTextnull

代码语言:javascript
复制
billText.addTextChangedListener(new TextWatcher() {

您尝试访问的EditText可能不在activity_main.xml布局中。因此,首先要确保activity_main.xml中存在id为billValueEditText

票数 2
EN

Stack Overflow用户

发布于 2014-04-15 20:09:45

您正在创建接口的新实例,而不是类。相反,您可以将activity类编写为

代码语言:javascript
复制
public class MainActivity extends ActionBarActivity implements TextWatcher

并向您的类添加一些方法:

代码语言:javascript
复制
    @Override
    public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
        // TODO Auto-generated method stub

    }

    @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

    }

试试看,我想你不会有例外。

票数 0
EN

Stack Overflow用户

发布于 2014-04-15 20:13:52

如下所示:

代码语言:javascript
复制
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    billText.addTextChangedListener(new TextWatcher() 
    {           
      public void onTextChanged(CharSequence s, 
      int start, int before, int count)
      {
        EditText billText = (EditText) view.findViewById(R.id.billText);
        billText_val = billText.getText().toString().toLowerCase();             
        //do anything with this value

      }

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

    }

    public void afterTextChanged(Editable s)
    {

    }
 });
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23083150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档