java - 如何在 Android 表单中进行过滤后的类似选择选项的下拉菜单?
问题描述
我的情况是:随着我的 AsyncTask 类运行,我将执行 GET 请求并从我的服务器检索 JSONArray,然后将其“绑定”到水平显示的下拉/选择选项/列表视图上。然后,用户将有一个 EditText,他将在其中键入,这将过滤显示包含用户条目的元素的列表。我已经使用 Angular JS 处理了这个场景,这与 ng-model、ng-repeat 和过滤器完美配合。我正在尝试将我的 webApp 转换为 Android。我是 android 新手,我想有一个分步教程来实现这一点。
解决方案
我建议你一个简单的方法,因为你是 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) {
}
});
推荐阅读
- html - 在 HTML 模板中呈现 React 组件的最佳方式?
- matlab - 如何定义模糊控制器设计的训练隶属函数?
- file - 从 File 中读取一行并将其传递给变量,然后继续下一行(Assembly 8086)
- javascript - AngularJS Material - md-autocomplete 隐藏了部分建议
- javascript - 第一个函数必须在调用第二个函数之前完成
- yii2 - Yii2 - 找不到类“mPDF”
- unity3d - 开发 GoogleVr Cardboard Unity 3D
- react-native - 是否有使用 react native expo 执行后台任务的技巧?
- assembly - 使用定时器在正确的时间发送和接收保证位 - 8051
- javascript - 循环遍历元素列表并通过 ajax 发送数据