我的情况是:在运行AsyncTask类的情况下,我将执行GET请求并从服务器中检索JSONArray,然后将其“绑定”到下拉菜单/选择选项/列表视图中,该列表视图将显示为水平。然后,用户将在其中输入EditText,这将过滤显示包含用户条目的元素的列表。 我已经使用Angular JS处理了这个scenerio,并且可以完美地与ng-model,ng-repeat和filter ..等配合 我正在尝试将我的webApp转换为Android。我是android的新手,我想一步一步地学习如何实现这一目标。
答案 0 :(得分:0)
我建议您采用一种简单的方法来使自己成为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) {
}
});