2012-01-30 56 views
0

我需要你的幫助:) 我有一個EditText,並在ExpandableListView下面。我使用了BaseExpandableListAdapter和groups/child。我希望當用戶在EditText中寫入時,ExpandableListView只顯示插入文本的組(item)。 我認爲我必須創建一個過濾器。 這裏有一段我​​的源代碼。任何人都可以幫助我嗎?謝謝你在前進使用BaseExpandableListAdapter在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 { 
       ...... 
      } 

回答

5

我解決了這個問題,我已經實現了界面以這種方式可篩選:

class MyExpandableListAdapter extends BaseExpandableListAdapter implements Filterable{ 

,然後我有重寫用getFilter()方法。最後,我寫了一個擴展Filter類的類。

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

    private class MyFilter extends Filter{ 
+3

您可以將您的答案標記爲正確。 – SERPRO 2012-02-27 11:22:54

相關問題