我正在尝试通过ListView
来自网络服务的数据搜索数据..
说明:如果我在搜索中输入[abc]editview[searchText]
并且如果我单击serachbutton(buttonSearch)
,它必须显示所有相关数据listview(listView)
例如:abc、abacd、abcderg 等以这种方式...
这个话题对我来说是新的。
这是我的代码。请帮我做。
我已经尝试过了,但我无法弄清楚如何做到这一点。
工作清单视图.java
ArrayList<Patient> patientListArray;
listView = (ListView) findViewById(R.id.workListview);
objectAdapter = new WorkListAdapter(this, patientListArray);
listView.setAdapter(objectAdapter);
listView.setTextFilterEnabled(true);
searchText = (EditText) findViewById(R.id.searchView);
searchText.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
dataAdapter.getFilter().filter(s.toString());
}
});
WorkListAdapter.java
public Filter getFilter() {
Filter myFilter = new Filter() {
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
if (!patientListArray.isEmpty()){
clear();
}
for (int i = 0; i < patientListArray.size(); i++) {
if(patientListArray.get(i).getName().toLowerCase().startsWith(constraint.toString().toLowerCase())){
add(patientListArray.get(i));
}
}
notifyDataSetChanged();
}
private void add(Patient patient) {
}
private void clear() {
}
@Override
protected FilterResults performFiltering(CharSequence constraint) {
return null;
}
};
return myFilter;
}