Итак, у меня есть следующий ListView адаптер:фильтр ListView с SearchView
ListViewAdapter.java
public class ListViewAdapter extends CursorAdapter{
public ListViewAdapter(Context context, Cursor cursor) {
super(context, cursor, 0);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return LayoutInflater.from(context).inflate(R.layout.listitem, parent, false);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
// Find fields to populate in inflated template
Button btnList = (Button) view.findViewById(R.id.btnList);
// Populate fields with cursor
btnList.setText(cursor.getString(0));
}
}
И вот XML я накачивания:
ListItem. xml
<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/btnList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/listview_item"
android:focusable="false"
android:clickable="false"
android:focusableInTouchMode="false"/>
И тогда я использую его здесь, чтобы дать ListView содержимое курсора:
MainActivity.java
ListViewAdapter lvAdapter = new ListViewAdapter(this, cursor);
listView.setAdapter(lvAdapter);
Теперь, как бы один использовать SearchView для фильтрации ListView каждый раз я меняю Искать в тексте? (Как onTextChange или что-то)?
я придумал с этим до сих пор:
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
todoAdapter.getFilter().filter(newText);
return true;
}
});
Но это не делает ничего ... Если вам нужна дополнительная информация, не стесняйтесь спросить :)
My Layout :