Android:TextChangedListener问题

时间:2013-02-04 14:24:54

标签: android

我有一个编辑文本和一个包含所有联系人的列表视图。当我搜索名称并显示结果时,我在名称中键入它显示结果如自动完成,下面是我的代码

final EditText editTxt = (EditText) findViewById(R.id.txtContName);

    editTxt.addTextChangedListener(new TextWatcher() {

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

        public void afterTextChanged(Editable s) {
            inputName = s.toString();
            if(inputName!=null&&!inputName.trim().equals("")){

                ((Button) findViewById(R.id.btnsearch)).setBackgroundResource(R.drawable.search);

            Log.d(TAG, "LoadMoreEntries --> Constants.loadEntries : "
                    + Constants.loadEntries);
            try {
                if (Constants.loadEntries != null) {
                    Constants.loadEntries.cancel(true);
                }
            } catch (Exception e) {
                Log.e(TAG, "Loading Data-------------------------------", e);
            }
            Constants.loadEntries = new LoadEntries();
            Constants.loadEntries.execute();
        }
        }

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

        }
    });

当我尝试清除edittext时,我遇到问题,当编辑文本清除但未发生时,应显示所有结果。任何帮助表示赞赏

2 个答案:

答案 0 :(得分:1)

那是因为当输入为空白时你没有得到所有结果?

if(inputName!=null&&!inputName.trim().equals("")){
...
}

答案 1 :(得分:0)

所以我更改代码以获得更好的格式。这应该可以解决你的问题。我不知道是什么 Constants.loadEntries = new LoadEntries(); 和 Constants.loadEntries.execute();

但是也许可能有些不对劲。但请尝试下面的代码:

    final EditText editTxt = (EditText) findViewById(R.id.txtContName);

    editTxt.addTextChangedListener(new TextWatcher()
    {

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

        public void afterTextChanged(Editable s)
        {
            inputName = s.toString();
            if (inputName != null && !inputName.trim().equals(""))
            {

                ((Button) findViewById(R.id.btnsearch)).setBackgroundResource(R.drawable.search);

                Log.d(TAG, "LoadMoreEntries --> Constants.loadEntries : "
                        + Constants.loadEntries);
                try
                {
                    if (Constants.loadEntries != null)
                    {
                        Constants.loadEntries.cancel(true);
                    }
                } catch (Exception e)
                {
                    Log.e(TAG, "Loading Data-------------------------------", e);
                }
                Constants.loadEntries = new LoadEntries();
                Constants.loadEntries.execute();
            }
            //Here do the else and call the LoadEntries
            else
            {
                Constants.loadEntries = new LoadEntries();
                Constants.loadEntries.execute();
            }
        }

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

        }
    });

更好的代码格式肯定会对您有所帮助。