0

我正在尝试使用适配器类在项目列表上开发搜索功能。

在此处输入图像描述

当 listview 通过 json webservice 从 php-mysql 数据库中动态获取所有项目时,如何在 listview 中使用搜索功能。

我已经在这个链接上发布了我完成的代码。

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 回答