为什么onQueryTextChange没有在双击时触发?

时间:2014-02-07 21:07:19

标签: android android-ui searchview

我的onQueryTextChange

上有SearchView.听众
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String searchString) {
            return true;
        }

        @Override
        public boolean onQueryTextChange(String s) {
            if (s.length() > 5) {
                searchView.setQuery(s.substring(0, 5), false);
            }
            return false;
        }
    });

我的目标是将字符数限制为5.问题是,

  1. 我正在输入5个字符。
  2. 之后我再输入一个字符。
  3. 我再次击中同一个角色,在第二次击中时它没有触发听众,它显示SearchView
  4. 中的第6个角色

    感谢您的帮助

1 个答案:

答案 0 :(得分:2)

我解决了在EditText中获取SearchView的问题,而不是限制在听众中。

我使用此方法获取EditText但它返回null,

searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
int id = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
EditText etSearchView = (EditText) searchView.findViewById(id);
etSearchView.setFilters(new InputFilter[] {new InputFilter.LengthFilter(5)});

我没有获得id的{​​{1}},而是通过了它的实际身份证明而且有效,

EditText