In Android is de Adapter
slaat een brug tussen de view en het datamodel. U zou de n . kunnen weergeven TextViews
in ofwel een ListView
of een GridView
, en wanneer de gebruiker een notitie toevoegt of verwijdert, wordt eerst de lokale of serverdatabase bijgewerkt. Na voltooiing van de webservice-aanroep en/of de lokale database-update, worden de nieuwe gegevens toegevoegd aan de onderliggende Adapter
. De View
wordt vervolgens vernieuwd door adapter.notifyDataSetChanged()
. aan te roepen . Dit zou de manier zijn om het te doen.
Benaderingen:
- Bij het bijwerken van de lokale
SQLite
database, kunt u overwegen eenCursorAdpater
. te gebruiken om de gegevens voor deView
. te bewaren , omdat het de items in de lokale database direct toewijst aan deView
. - Bij gebruik van een
ContentProvider
, is het zelfs mogelijk om een CursorAdapter
. te combineren met eenLoaderManager
en eenCursorLoader
:deze worden aangesloten op deActivity
/Fragment
levenscyclus en monitor de onderliggendeContentProvider
voor wijzigingen die automatisch worden gepubliceerd in deView
op een aparte thread. - Het is ook mogelijk om een
Filter
. te gebruiken in combinatie met deAdapter
om een dynamisch mechanisme te definiëren dat de gegevensinvoer on-the-fly sorteert. Het filteren wordt uitgevoerd door deFilter
op een aparte thread, volgens een zoekopdracht die door de gebruiker is ingevoerd, mogelijk in eenAutoCompleteTextView
.
Referenties:
- Zie de Een lijst met contactpersonen ophalen zelfstudie. Het voorbeeld hier haalt een set contacten op uit thecontacts
ContentProvider
gebaseerd op een dynamische, alfabetische zoekopdracht door de gebruiker. Het maakt gebruik vanCursorAdapter
,CursorLoader
enLoaderManager
om de gegevens te controleren en bij te werken, en het geeft de zoekresultaten weer in eenListView
. - Zie ook de Android Realtime (Instant) Search met filterklasse voorbeeld, dat laat zien hoe een
Filter
moet worden gebruikt. - Android AutoCompleteTextView met filtering op aangepaste adapter .
- Android AutocompleteTextView met behulp van ArrayAdapter en filter .