Фильтровать текст в ExpandableListView с помощью BaseExpandableListAdapter - PullRequest
0 голосов
/ 30 января 2012

Мне нужна ваша помощь :) У меня есть EditText и ниже ExpandableListView.Я использовал BaseExpandableListAdapter с groups / child.Мне бы хотелось, чтобы, когда пользователь пишет в EditText, ExpandableListView показывает только группу (элемент) с вставленным текстом.Я думаю, что я должен создать фильтр.Здесь есть часть моего исходного кода. Кто-нибудь может мне помочь?Заранее спасибо

         @Override
     public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState
               setContentView(R.layout.main);
               et = (EditText) findViewById(R.id.filterText);

               et.setSingleLine();  
               et.addTextChangedListener(new TextWatcher() {

        @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
            // TODO Auto-generated method stub
            if (et.getText().toString().equals(""))
                elv.setBackgroundColor(Color.BLACK);
            else
            {
                elv.setBackgroundColor(Color.WHITE);
            }
        }
             @Override
             public void beforeTextChanged(CharSequence s, int start, int count,int after) {
            // TODO Auto-generated method stub          
        }

        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub

        }
    });

            elv=getExpandableListView();
            mAdapter = new MyExpandableListAdapter(fields_select,description);
            elv.setAdapter(mAdapter);

            class MyExpandableListAdapter extends BaseExpandableListAdapter {
               ......
            }

1 Ответ

5 голосов
/ 02 февраля 2012

Я решил, я реализовал интерфейс Filterable следующим образом:

   class MyExpandableListAdapter extends BaseExpandableListAdapter implements Filterable{

и затем я переопределил метод getfilter (). В конце я написал класс, который расширяет класс Filter.

   public Filter getFilter() {
    Filter filter = new MyFilter();
    return filter;
}

    private class MyFilter extends Filter{
...