I ont une base de données comme suit:FilterQueryProvider, filtre et ListView
------------------------------
BOOK NAME | BOOK FORMAT | COUNT |
------------------------------
Android | HTML | 1
WPF | PDF | 10
Symbian | PS | 2
Windows | HTML | 2
Je montre cette base de données à l'utilisateur en utilisant un CustomSimpleCursorAdapter.
CustomSimpleCursorAdapter extends SimpleCursorAdapter
implémente filtrables
avec getView()
& runQueryonBackgroundThread()
être outrepassée.
La vue Grille des livres est correctement affichée.
L'utilisateur a les options suivantes:
HTML | PDF | PS | SUPPRIMER
Constraint: BOOK FORMAT
[HTML - 1, PDF - 2, PS - 3]
Lorsque l'utilisateur appuie sur l'option de menu HTML, les livres de type HTML doit être montré.
intérieur gestionnaire MenuOption(), je l'ai écrit comme suit:
adapter.getFilter().filter("1");
runQueryonBackgroundThread() {
if(mCursor != null)
mCursor.close();
mCursor = query(using the constraint)
return mCursor;
}
Cette contrainte pour atteindre mon overriden runQueryonBackgroundThread()
méthode . Mais il ne met pas à jour la vue de la grille et déclenche une exception.
"FILTER: android.view.ViewRoot $ CalledFromWrongThreadException: Seul le thread d'origine qui a créé une hiérarchie de vue peut toucher son point de vue"
S'il vous plaît aidez-moi.
Salut Arhimed, Merci beaucoup. Cela fonctionne très bien. :) Je vais aussi essayer de le faire dans runQueryonBT de CustomSimpleCursorAdapter. – ramsarvan
c'est intéressant. est-ce toujours valable lors de l'utilisation de chargeurs? Je veux dire, y a-t-il un avantage à utiliser le fournisseur de requête de filtre plutôt que de faire un restartLoader()? Voir ma question http://stackoverflow.com/questions/24344950/filtering-with-loadermanager-and-content-provider – faizal
@faizal: Je n'ai pas étudié des chargeurs aussi profonds, donc je n'ai pas le droit de vous suggérer quoi que ce soit. –