【问题标题】:SearchView is not filtering the ListView items with spacesSearchView 没有过滤带有空格的 ListView 项目
【发布时间】:2023-04-10 19:14:01
【问题描述】:

我有一个 SearchView 和一个 ListView。我正在使用以下代码在我的onCreate 方法中过滤 ListView 项目

 ListAdapter listAdapter = new ListAdapter(this, ChainageFactory.getAllListViewItems());
 listView.setAdapter(listAdapter);
 listView.setTextFilterEnabled(true);
 filter = listAdapter.getFilter();
 searchView.setIconifiedByDefault(false);
 searchView.setOnQueryTextListener(this);
 searchView.setSubmitButtonEnabled(true);
 searchView.setQueryHint("Search Here");

以下是我的 onQueryTextChange 和 onQueryTextSubmit 方法。

@Override
    public boolean onQueryTextChange(String newText) {
        if (TextUtils.isEmpty(newText)) {
            filter.filter(null);
        } else {
            filter.filter(newText);
        }
        return true;
    }

    public boolean onQueryTextSubmit(String query) {
        return false;
    }

我的 ListView 包含以下项目。

  1. DIK70300-DI K7 300 毫米直径
  2. DIK70300-DI K7 400 毫米直径
  3. AIK70300-DI D7 450 毫米直径
  4. AIK70300-DI D7 500 毫米直径

如果用户键入 DI 或 AI,我可以过滤 ListView 项目,但如果用户键入 D7 后跟空格,或者如果用户键入 K7 后跟空格,它不会过滤 ListView 项目,尽管有那些项目人物。我怎样才能解决这个问题?

【问题讨论】:

    标签: android listview searchview android-filterable


    【解决方案1】:

    想要将 .trim() 放入你的函数中。对我来说效果很好。

    【讨论】:

      【解决方案2】:

      在您的实际列表上执行过滤器而不是listAdapter

      @Override
      public boolean onQueryTextChange(String newText) {
      
          for(int i = 0; i < ChainageFactory.getAllListViewItems().size(); i++){
              if (TextUtils.isEmpty(newText)) {
                  filter.filter(null);
              } else {
                  String itemName = ChainageFactory.getAllListViewItems().YourItem();
      
                  if(itemName.contains(newText)){
                      //Perform your operation with filtered data
                  }
              }
          }
          return true;
      }
      
      public boolean onQueryTextSubmit(String query) {
          return false;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-30
        • 2012-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多