Java 如何在Android窗体中执行筛选选择选项(如下拉菜单)?
我的情况是:运行AsyncTask类后,我将执行GET请求并从服务器检索JSONArray,然后将其“绑定”到水平显示的下拉/选择选项/列表视图上。然后,用户将有一个EditText,他将在其中键入,这将过滤显示包含用户条目的元素的列表。 我用Angular JS处理过这个场景,这在ng model、ng repeat和filters中非常有效。。等Java 如何在Android窗体中执行筛选选择选项(如下拉菜单)?,java,android,xml,angular,Java,Android,Xml,Angular,我的情况是:运行AsyncTask类后,我将执行GET请求并从服务器检索JSONArray,然后将其“绑定”到水平显示的下拉/选择选项/列表视图上。然后,用户将有一个EditText,他将在其中键入,这将过滤显示包含用户条目的元素的列表。 我用Angular JS处理过这个场景,这在ng model、ng repeat和filters中非常有效。。等 我正在尝试将我的webApp转换为Android。我是android新手,我希望有一个循序渐进的教程来实现这一点。我建议你一个简单的方法,因为你是
我正在尝试将我的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();
}
我建议你用一种简单而巧妙的方式->简单和巧妙的概念是对立的,所以你的句子没有什么意义。除此之外,我建议您在回答中提出与答案本身没有直接关系的意见。
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) {
}
});