简体   繁体   中英

How to show Toast when Search is empty in onQuerTextListner

I am using simple recyclerview to show list i able to filter my list but i want to show simple toast when search item is not found in my list please help me for that here is my code

for adapter class

 Filter filter=new Filter() {
    @Override
    protected FilterResults performFiltering(CharSequence constraint) {
        ArrayList<Allcontainlist> filter_list=new ArrayList<>();
        if (constraint==null||constraint.length()==0){
           filter_list.addAll(Alllist);

        }else
        {
            String filter_pattern=constraint.toString().toLowerCase().trim();
            for (Allcontainlist allcontainlist:Alllist){
                if(allcontainlist.getRout().toLowerCase().contains(filter_pattern))
                {
                    filter_list.add(allcontainlist);
                }
            }
        }

        FilterResults results=new FilterResults();
        results.values=filter_list;
        return results;
    }

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

and this code for search lists

  @Override
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
    inflater.inflate(R.menu.search_bar,menu);
    MenuItem menuItem=menu.findItem(R.id.search_bar);
    SearchView searchView = (SearchView) menuItem.getActionView();
    searchView.setImeOptions(EditorInfo.IME_ACTION_DONE);
    searchView.setQueryHint("Search buses");
    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            if(list.contains(query)) {
                alladapter.getFilter().filter(query);
            }else
            {
                Toast.makeText(getActivity(),"Not found",Toast.LENGTH_SHORT).show();
            }
            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {

                if(TextUtils.isEmpty(newText))
                {

                    Toast.makeText(getActivity(),"not found",Toast.LENGTH_SHORT).show();
                }
                else
               alladapter.getFilter().filter(newText);

            return false;
        }
    });
    super.onCreateOptionsMenu(menu, inflater);
}

I have tried some example code but not working please help me for this i want to just toast when the search result is empty thank you

@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
    list.clear();
    list.addAll((Collection<? extends Allcontainlist>) results.values);
    if (list.size() == 0) {
         //Here you can either use a callback(recommended) or show toast
         //Toast.makeText(mContext, "No Results Matching Your Query...", Toast.LENGTH_SHORT).show();
      }

    notifyDataSetChanged();
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM