java实现了选项卡布局中片段内部的搜索视图,但它工作不正常

6rqinv9w  于 2021-06-27  发布在  Java
关注(0)|答案(0)|浏览(225)

这是包含两个片段的库存活动。我想在条形码片段内实现搜索视图,以便用户可以轻松地从库存中搜索项目。我在两个片段之间使用了2个片段、2个类和一个适配器,但问题是search视图不能正常工作。我在下面提到了在片段中实现search视图的代码。我无法在代码中找到错误或导致问题的东西。
这是库存活动的代码。库存(活动)

((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);
        setHasOptionsMenu(true);
        @Override
        public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {

            inflater.inflate(R.menu.stock,menu);
            MenuItem item =menu.findItem(R.id.search);
            SearchView searchView= (SearchView) item.getActionView();
            searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
                @Override
                public boolean onQueryTextSubmit(String query) {

                    return false;
                }

                @Override
                public boolean onQueryTextChange(String newText) {
                    //Log.d("TAG", "onQueryTextChange: "+newText);
                    //adp_additem_nobar= new Adp_additem_nobar(additem.this,itemList);
                    //WithBarcode.adp_stock_withbar.getFilter().filter(newText);
                    //adp_additem_nobar.notifyDataSetChanged();
                    //adp_additem_nobar.notifyAll();
                    return false;
                }
            });
            super.onCreateOptionsMenu(menu, inflater);

此片段将包含具有品牌商品条形码的商品。我已经在这个片段中实现了search视图,但是search视图不能正常工作。
带条形码(片段)

Stock.searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                adp_stock_withbar.getFilter().filter(newText);
                return false;
            }
        });
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                return false;
            }

这是适配器的类。请检查适配器类是否有任何问题或需要更正。适配器

class adp_stock_withbar extends RecyclerView.Adapter<adp_stock_withbar.ViewHolder> implements Filterable
        @Override
        public Filter getFilter() {
            return filter;
        }
        Filter filter= new Filter() {
            @Override
            protected FilterResults performFiltering(CharSequence constraint) {
                List<String> fillist= new ArrayList<>();
                if(constraint.toString().isEmpty()){
                    fillist.addAll(list);
                }
                else {
                    for(String s:list){
                        if(s.toLowerCase().contains(constraint.toString().toLowerCase())){
                            fillist.add(s);
                        }
                    }
                }

                FilterResults filterResults= new FilterResults();
                filterResults.values=fillist;
                return filterResults;
            }

            @Override
            protected void publishResults(CharSequence constraint, FilterResults results) {
                stringList.clear();
                stringList.addAll((Collection<? extends String>) results.values);
                notifyDataSetChanged();
            }
        };

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题