0

I finally managed to run the search on the action bar but lost the overflow icon (three points ) with its corresponding menu . Could you help me? Thank you!

<?xml version="1.0" encoding="utf-8"?>

<item
    android:id="@+id/action_search"
    app:actionViewClass="android.widget.SearchView"
    android:icon="@drawable/ic_launcher"
    app:showAsAction="always"
    android:title="Search"/>

<item
    android:id="@+id/empty"
    android:title="Opciones"
    android:orderInCategory="101"
    app:showAsAction="always"
    android:icon="@drawable/ic_action_overflow">

    <menu>
        <item android:id="@+id/action_registro"
            app:showAsAction="ifRoom"
            android:title="Registro de cuenta"
            />

        <item android:id="@+id/action_contacto"
            app:showAsAction="ifRoom"
            android:title="Contacto"
            />

        <item android:id="@+id/action_help"

            app:showAsAction="ifRoom"
            android:title="Ayuda"
            />

    </menu>

</item>

enter image description here

You need me to write more code ?

benoffi7
  • 3,068
  • 3
  • 29
  • 44

1 Answers1

1
## The adapter ##      

  public class Adaptador_Prestadores extends RecyclerView.Adapter<Adaptador_Prestadores.PrestadoraViewHolder> implements View.OnClickListener {

        private final LayoutInflater inflater;
        private List<Prestadora> list_prestadoras;
        int pos;
        Context context;

        public Adaptador_Prestadores(Context context, List<Prestadora> list_prestadoras) {
            inflater = LayoutInflater.from(context);
            this.list_prestadoras = list_prestadoras;
            this.context = context;
        }

        @Override
        public PrestadoraViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            final View itemView = inflater.inflate(R.layout.search_filtro, parent, false);
            PrestadoraViewHolder prestadora = new PrestadoraViewHolder(itemView);

            return prestadora;
        }

        @Override
        public void onBindViewHolder(PrestadoraViewHolder holder, int position) {
            final Prestadora prestadora = this.list_prestadoras.get(position);
            holder.bind(prestadora);
        }
        @Override
        public int getItemCount() {
            return this.list_prestadoras.size();
        }

        public void setPrestadoras(List<Prestadora> list_prestadoras) {
            this.list_prestadoras = new ArrayList<>(list_prestadoras);
        }

        private OnRecyclerViewItemClickListener mOnItemClickListener = null;

        public interface OnRecyclerViewItemClickListener {
            void onItemClick(View view, int resId);
        }

        @Override
        public void onClick(View v) {
            if (mOnItemClickListener != null)
            {
                    mOnItemClickListener.onItemClick(v, (Integer) v.getTag());
            }
        }

        public void setOnItemClickListener(OnRecyclerViewItemClickListener listener) {
            this.mOnItemClickListener = listener;
        }

        public Prestadora getPrestador(int pos)
        {
            return list_prestadoras.get(pos);
        }


        class PrestadoraViewHolder extends RecyclerView.ViewHolder{

            private final TextView txt_prestadora;

            public PrestadoraViewHolder(View itemView)  {
                super(itemView);

                txt_prestadora = (TextView) itemView.findViewById(R.id.txt_filtro);

            }

            public void bind(Prestadora model) {
                txt_prestadora.setText(model.getNombre());


            }
        }

        public Prestadora removeItem(int position) {
            final Prestadora localidad = this.list_prestadoras.remove(position);
            notifyItemRemoved(position);
            return localidad;
        }

        public void addItem(int position, Prestadora prestadora) {
            this.list_prestadoras.add(position, prestadora);
            notifyItemInserted(position);
        }

        public void moveItem(int fromPosition, int toPosition) {
            final Prestadora model = this.list_prestadoras.remove(fromPosition);
            this.list_prestadoras.add(toPosition, model);
            notifyItemMoved(fromPosition, toPosition);
        }

        public void animateTo(List<Prestadora> list_localidades) {
            applyAndAnimateRemovals(list_localidades);
            applyAndAnimateAdditions(list_localidades);
            applyAndAnimateMovedItems(list_localidades);
        }

        private void applyAndAnimateRemovals(List<Prestadora> list_filtros) {
            for (int i = this.list_prestadoras.size() - 1; i >= 0; i--) {
                final Prestadora filtro = this.list_prestadoras.get(i);
                if (!list_filtros.contains(filtro)) {
                    removeItem(i);
                }
            }
        }

        private void applyAndAnimateAdditions(List<Prestadora> list_localidades) {
            for (int i = 0, count = list_localidades.size(); i < count; i++) {
                final Prestadora prestadora = list_localidades.get(i);
                if (!this.list_prestadoras.contains(prestadora)) {
                    addItem(i, prestadora);
                }
            }
        }

        private void applyAndAnimateMovedItems(List<Prestadora> list_localidades) {
            for (int toPosition = list_localidades.size() - 1; toPosition >= 0; toPosition--) {
                final Prestadora localidad = list_localidades.get(toPosition);
                final int fromPosition = list_localidades.indexOf(localidad);
                if (fromPosition >= 0 && fromPosition != toPosition) {
                    moveItem(fromPosition, toPosition);
                }
            }
        }

    }

## Activity or fragment ##  
    @Override
        public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
            inflater.inflate(R.menu.menu_nuevo_eturn, menu);

            final MenuItem item = menu.findItem(R.id.action_search);
            final SearchView searchView = (SearchView) MenuItemCompat.getActionView(item);
            searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
                @Override
                public boolean onQueryTextSubmit(String query) {
                    return false;
                }

                @Override
                public boolean onQueryTextChange(String query) {
                    final List<Prestadora> filteredModelList = filter(dao.traerPrestadoras(localidad), query);
                    adaptador_prestador.animateTo(filteredModelList);
                    recycler_nuevo_eturn.scrollToPosition(0);
                    return true;
                }
            });
        }



    ## XML Menu ##      
    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto">

        <item android:id="@+id/action_search"
            android:title="@string/action_search"
            app:actionViewClass="android.support.v7.widget.SearchView"
            app:showAsAction="always"/>

    </menu>