2012-09-09 80 views
0

下面這個教程:tuto的Android添加搜索功能的ListView

我想和一個EditText搜索functionnality到我的ListActivity。

本教程介紹瞭如何做到這一點,但使用簡單的ArrayAdapter:

// Listview Data 
    String products[] = {"Dell Inspiron", "HTC One X", "HTC Wildfire S", "HTC Sense", "HTC Sensation XE", 
          "iPhone 4S", "Samsung Galaxy Note 800", 
          "Samsung Galaxy S3", "MacBook Air", "Mac Mini", "MacBook Pro"}; 

    lv = (ListView) findViewById(R.id.list_view); 
    inputSearch = (EditText) findViewById(R.id.inputSearch); 

    // Adding items to listview 
    adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.product_name, products); 
    lv.setAdapter(adapter); 

    /** 
    * Enabling Search Filter 
    * */ 
    inputSearch.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) { 
      // When user changed the Text 
      MainActivity.this.adapter.getFilter().filter(cs); 
     } 

     @Override 
     public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, 
       int arg3) { 
      // TODO Auto-generated method stub 

     } 

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

我將能夠使它太多,但與我的自定義:ArrayAdapter

編輯:

這是現在正在使用我的對象的toString()返回值查找。

現在我有這樣的問題:

在我的EditText我有「酒」在我的名單上有一個只包含一個元素這個詞: 我的名單:

----------------- 
--------- 
The god of wine and orange juice 
--------------- 
---------------------- 

它的優良的工作和我現在只有「神......」的結果,但如果我把酒後的空間結果將消失..

+1

已回答[此處](http://stackoverflow.com/a/12268592/1531054) –

回答

0

你可以添加任何你想要的ArrayAdapter,即... ArrayAdapter<MyObject>,只是覆蓋toString()方法在您的模型類中設置將在列表中顯示的內容。