0

アダプタ クラスを使用して、アイテムのリストに対する検索機能を開発しようとしています。

ここに画像の説明を入力

リストビューがjson Webサービスを介してphp-mysqlデータベースからすべてのアイテムを動的に取得するときに、リストビューで検索機能を使用する方法。

完成したコードをこのリンクに投稿しました。

4

1 に答える 1

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();
}
于 2014-03-19T12:36:48.780 に答える