1

I have implemented the SearchView of android at actionbar for searching the listview, everything is working fine but the queried text in SearchView is getting displayed as shown belowBlack color text at bottom is hiding my button

this is the code i have written

searchView.setQueryHint("Query Hint");
searchView.setIconifiedByDefault(true);
searchView.setOnQueryTextListener(this);

Anyone please help me on how to remove that view

This is the code regarding the search view.

public class HomeScreen extends Activity implements SearchView.OnQueryTextListener{
....
OnCreate(){
...
listView.setAdapter(adapter);
listView.setTextFilterEnabled(true);
}
OnCreateOptionsMenu()
{...
setUpSearchView();
...}

    private void setupSearchView() {
        searchView.setQueryHint("Search Product");
        searchView.setIconifiedByDefault(true);
        searchView.setOnQueryTextListener(this);

    }

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

    @Override
    public boolean onQueryTextChange(String newText) {
        if (TextUtils.isEmpty(newText)) {
            listView.clearTextFilter();
        } else {
            listView.setFilterText(newText);
        }
        return true;
    }

Adapter code is as below.

public class CustomListAdapter extends BaseAdapter implements Filterable{

    private Activity activity;
    private List<Product> productItems;
    private List<Product> orig;


    public CustomListAdapter(Activity activity, List<Product> productItems) {
        this.activity = activity;
        this.productItems = productItems;
    }

    @Override
    public int getCount() {
        return productItems.size();
    }

    @Override
    public Object getItem(int location) {
        return productItems.get(location);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ProductHolder productHolder;

         ....

        return convertView;
    }


    @Override
    public Filter getFilter() {
        return new Filter() {
            @Override
            protected FilterResults performFiltering(CharSequence constraint) {
                final FilterResults filterResults = new FilterResults();
                final List<Product> intermediateResults = new ArrayList<Product>();
                if(orig == null)
                    orig = productItems;
                if(constraint != null)
                {
                    if(orig!=null && orig.size() > 0){
                        for (final Product g : orig) {
                            if (g.getTitle().toLowerCase().contains(constraint.toString()))
                                intermediateResults.add(g);
                        }
                    }
                    filterResults.values = intermediateResults;
                }
                return filterResults;
            }

            @Override
            protected void publishResults(CharSequence constraint, FilterResults results) {
                productItems = (ArrayList<Product>) results.values;
                notifyDataSetChanged();
            }
        };
    }
}
Manikanta
  • 3,421
  • 4
  • 30
  • 51

0 Answers0