Android: поиск в ListView - PullRequest
       40

Android: поиск в ListView

0 голосов
/ 17 марта 2019

Мне нужно быстрое решение для моей проблемы. У меня есть ListView, и я хочу искать из этого. Я своего рода начинающий с фильтрацией и адаптерами, так что это код моего фрагмента:

    View v;
    DB mydb;
    ListView listView;
    final ArrayList<String> thelist = new ArrayList<>();
    final ArrayList<String> deletelist= new ArrayList<>();
    boolean torles=false;
    String delete; int id;
    private ListAdapter listadapter;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        v = inflater.inflate(R.layout.fragment_numberone, container, false);

        listView = (ListView) v.findViewById(R.id.list);
        mydb = new DB(getActivity());

        loadlist();

        EditText filter = (EditText)v.findViewById(R.id.filter);
        filter.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                getActivity().listadapter.getFilter().filter(s);
//Here is the problem

            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });

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

                        id = Integer.parseInt(deletelist.get(i));
                        delete=thelist.get(i);

                        AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
                        alert.setTitle("Title");
                        alert.setMessage("Message");

                        alert.setPositiveButton("Delete", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {

                                mydb.grade_delete(id);
                                listView.removeAllViewsInLayout();
                                thelist.removeAll(thelist);
                                deletelist.removeAll(deletelist);
                                loadlist();
                            }
                        });
                        alert.setNegativeButton("No", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {

                            }
                        });

                        alert.create().show();
                    }
                }
        );

        return v;
    }

    public void loadlist() {
        Cursor data = mydb.Jegynevlekerdezes();
        if (data.getCount() == 0) {

        } else {
            while (data.moveToNext()) {
                thelist.add(data.getString(0)+":  "+data.getString(1));
                deletelist.add(data.getString(2));
                listadapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, android.R.id.text1, thelist);
                listView.setAdapter(listadapter);
            }

        }
    }
}

Моя проблема с этим: .. GetActivity () listadapter.getFilter () фильтр (ы); Listadapter не так, он отображается как красный. Как мне грустно, я новичок с адаптером и поиском.

...