How to make a search engine for a listview? [closed]

1

Code

public class ClassRuta extends Fragment  {

    View viewIn;
    SearchView sv;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        viewIn = inflater.inflate(R.layout.list_ruta, container, false);
        ((HomeActivity) getActivity()).setActionBarTitle("Buscar");
        ((HomeActivity) getActivity()).showSupportActionBar();
        sv=(SearchView) viewIn.findViewById(R.id.searchView1);
        //sv.setIconified(false);
        return viewIn;
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        new AsyncListViewLoader().execute();
    }

    private class AsyncListViewLoader extends AsyncTask<Void, Void, ObjectPark[]> {
        ProgressDialog dialog;
        @Override
        protected void onPreExecute() {
            super.onPreExecute();

            dialog = ProgressDialog.show(getActivity(), "","Cargando...", true);
            dialog.show();

        }
        @Override
        protected ObjectPark[] doInBackground(Void... params) {

            ObjectPark[] ObjectItemData = null;
            ObjectItemData = new ObjectPark[12];
            for (int i = 0; i < 12; i++) {
                ObjectItemData[i] = new ObjectPark("RUTA "+i,"url","Type"+i);
            }

            return ObjectItemData;
        }

        protected void onPostExecute(ObjectPark[] result) {
            if(result == null){
                Toast.makeText(getActivity(), "No hay conexion a la red", Toast.LENGTH_SHORT).show();
            }else{
                ListView list = (ListView)viewIn.findViewById(R.id.listPark);
                final CustomAdapter cus = new CustomAdapter(getActivity(),result);
                list.setAdapter(cus);

                list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

                        /// Obtiene el valor de la casilla elegida
                        String itemSeleccionado = adapterView.getItemAtPosition(i).toString();
                        // muestra un mensaje
                        //Toast.makeText(getActivity(), "Haz hecho click en " + itemSeleccionado, Toast.LENGTH_SHORT).show();
                        FragmentTransaction transaction = getFragmentManager().beginTransaction();
                        //transaction.setCustomAnimations(R.animator.enter,R.animator.exit);
                        //transaction.setCustomAnimations(R.anim.enter,R.anim.exit);
                        //transaction.replace(R.id.content_frame, new ClassParkInfo()).commit();

                    }
                });
            }
            dialog.dismiss();
        }
    }

    public static class CustomAdapter extends BaseAdapter {

        ObjectPark data[] = null;
        LayoutInflater mInflater;
        public CustomAdapter(Context context, ObjectPark[] data) {
            mInflater = LayoutInflater.from(context);
            this.data = data;
        }

        @Override
        public int getCount() {
            return data.length;
        }

        @Override
        public Object getItem(int position) {
            return position;
        }

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

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder holder;
            if(convertView ==null)
            {
                convertView = mInflater.inflate(R.layout.ruta_row,parent,false);
                holder = new ViewHolder();
                holder.tv = (TextView) convertView.findViewById(R.id.nameRuta);
                holder.iv = (ImageView) convertView.findViewById(R.id.imagePark);
                convertView.setTag(holder);
            }
            else
            {
                holder = (ViewHolder) convertView.getTag();
            }
            ObjectPark objectItem = data[position];
            holder.tv.setText(objectItem.name);

            // use holder.iv to set whatever image you want according to the position
            return convertView;
        }


        static class ViewHolder
        {
            ImageView iv;
            TextView tv;
            TextView tv2;
        }
    }


    @Override
    public void onResume() {
        super.onResume();

        getView().setFocusableInTouchMode(true);
        getView().requestFocus();
        getView().setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {
                    // handle back button
                    getFragmentManager().beginTransaction().replace(R.id.content_frame,new ClassInit()).commit();
                    return true;
                }
                return false;
            }
        });
    }

    public class ObjectPark {

        public String name;
        public String url;
        public String type;
        // constructor
        public ObjectPark(String name,String url,String type) {
            this.name = name;
            this.url = url;
            this.type = type;
        }
    }

}
    
asked by Jhonatan Garcia 21.07.2016 в 18:33
source

0 answers