首页 > 解决方案 > 如何在 Android 表单中进行过滤后的类似选择选项的下拉菜单?

问题描述

我的情况是:随着我的 AsyncTask 类运行,我将执行 GET 请求并从我的服务器检索 JSONArray,然后将其“绑定”到水平显示的下拉/选择选项/列表视图上。然后,用户将有一个 EditText,他将在其中键入,这将过滤显示包含用户条目的元素的列表。我已经使用 Angular JS 处理了这个场景,这与 ng-model、ng-repeat 和过滤器完美配合。我正在尝试将我的 webApp 转换为 Android。我是 android 新手,我想有一个分步教程来实现这一点。

标签: javaandroidxmlangular

解决方案


我建议你一个简单的方法,因为你是 android 的新手!将此功能添加到您的 listView 适配器:

public void filterList(String searchText)
{
    ArrayList<C_ChatListItem> temp = new ArrayList<>();
    adapteritems = backupItems; // copy your Get response in backupItems for new searches in constructor
                                // then in every new search retrieve adapterIems
    if(searchText != null && searchText.length() > 0)
    {
        for (int i = 0 ; i < adapteritems.size() ; i++)
        {
            if(adapteritems.get(i).users_entry.contains(searchText))
                temp.add(item);
        }
        adapteritems = temp;
    }
    notifyDataSetChanged();
}

并在您的活动中将 textWatcher 添加到您的搜索 editText 中,如下所示:

et_search.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            String txt = et_search.getText().toString();
            adapter.filterList(txt);
        }

        @Override
        public void afterTextChanged(Editable editable) {

        }
    });

推荐阅读