У меня есть три столбца Listview, который извлекает данные из базы данных SQLite. однако когда я набираю первые несколько букв первого поля в окне поиска, все данные исчезают. Ниже мой код. Работает на один столбец простого списка
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
setContentView(R.layout.activity_search_resturant_listing_x);
mSearchView = (SearchView) findViewById(R.id.search_view);
listView = (ListView) findViewById(R.id.list_view);
controller = new ResturantsDbHelper(this);
userList = new ArrayList<>();
Cursor resturantdata = controller.getResturantList();
int numRows =resturantdata.getCount();
if (numRows == 0){
Toast.makeText(SearchResturantListingX.this,"No Resturants matching your selection criteria",Toast.LENGTH_LONG).show();
}
else{
while (resturantdata.moveToNext()){
user = new User(resturantdata.getString(1),resturantdata.getString(2),resturantdata.getString(3),resturantdata.getString(4),resturantdata.getString(5));
userList.add(user);
}
adapter = new FiveColumn_ListAdapter(this,R.layout.activity_search_main3_resturant_list,userList);
listView.setAdapter(adapter);
}
listView.setTextFilterEnabled(true);
setupSearchView();
}
private void setupSearchView() {
mSearchView.setIconifiedByDefault(false);
mSearchView.setOnQueryTextListener(this);
mSearchView.setSubmitButtonEnabled(true);
mSearchView.setQueryHint("Search Here");
}
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
if (TextUtils.isEmpty(newText)) {
listView.clearTextFilter();
} else {
listView.setFilterText(newText.toString());
}
return false;
}