0

我試圖通過使用適配器類來開發項目列表上的搜索功能。如何搜索Android中動態ListView中的項目?

enter image description here

如何使用搜索功能在列表視圖列表視圖時,通過JSON Web服務從PHP,MySQL數據庫,讓所有項目dyanamically。

我已經完成了這個link上的代碼。

+0

對此http://www.androidhive.info/2012/09/android-adding-search-functionality-to-listview/ – 2014-03-19 12:33:37

+0

一起來看看在這個環節數據是靜態的..我取數據通過json和適配器用於綁定列表視圖中的數據 – Amardeepvijay

+0

它與靜態或動態數據無關。因爲你在適配器上應用過濾器。所以無論您的適配器包含什麼數據,都將適用於此。 – 2014-03-19 12:39:15

回答

1

您擁有Arraylist中的所有數據只是在您的活動中實現了TextWatcher,並且在onTextchanged中調用了filterlist方法。

@Override 
public void onTextChanged(CharSequence s, int start, int before, int count) { 
    // TODO Auto-generated method stub 
    adp.filterList(s); 
} 
// add this method in adapter 
    public emotions_adapter(Context context, ArrayList<String> emotions_symbol, 
     ArrayList<String> emotions_name) { 
    emo_symbole = emotions_symbol; 
    emo_name = emotions_name; 
    this.response_name = emotions_name; 
    this.response_symbol = emotions_symbol; 
    C = context; 
    l_Inflater = LayoutInflater.from(context); 

} 

public void filterList(CharSequence s) { 
    if (s.toString().length() > 0) { 
     ArrayList<String> filteredname = new ArrayList<String>(); 
     ArrayList<String> filteredsymbole = new ArrayList<String>(); 

     for (int i = 0; i < response_name.size(); i++) { 

      if (response_name.get(i).toLowerCase().contains(s.toString().toLowerCase())|| response_symbol.get(i).toLowerCase() 
          .contains(s.toString().toLowerCase())) { 

       filteredname.add(response_name.get(i)); 
       filteredsymbole.add(response_symbol.get(i)); 
      } 
     } 

     emo_name = filteredname; 
     emo_symbole = filteredsymbole; 
    } else { 
     emo_name = response_name; 
     emo_symbole = response_symbol; 

    } 
notifyDataSetChanged(); 
} 
+0

希望這會對你有用。 –

+0

它不適用於我的情況 – Amardeepvijay