Android Curseur avec ORMLite à utiliser dans CursorAdapter
Est-il de toute façon, comment obtenir le Curseur d'une requête, que je suis en traitement avec ORMLite objet Dao?
Vous devez vous connecter pour publier un commentaire.
Est-il de toute façon, comment obtenir le Curseur d'une requête, que je suis en traitement avec ORMLite objet Dao?
Vous devez vous connecter pour publier un commentaire.
ORMLite prend désormais en charge
next()
,previous()
,moveRelative(offset)
, ... des méthodes sur leCloseableIterator
de la classe. Cela devrait vous permettre de déplacer le sous-jacentCursor
objet déplacer à volonté.Il prend également en charge les DAO Curseur méthodes:
dao.mapSelectStarRow(databaseResults)
De retour de la dernière ligne de la base de données de résultats d'une requête àselect *
. Avec cela, vous pouvez modifier l'emplacement du curseur (par exemple), puis obtenir l'objet en cours.dao.getSelectStarRowMapper()
Fournit un mappeur que vous pouvez utiliser pour cartographier l'objet en dehors de la Dao.Lorsque vous construisez votre propre requête avec ORMLite, vous utilisez le
QueryBuilder
objet.queryBuilder.prepare()
renvoie unePreparedQuery
qui est utilisé par diverses méthodes dans le DAO. Vous pouvez appelerdao.iterator(preparedQuery)
qui sera de retour uneCloseableIterator
qui est utilisé pour itérer sur les résultats. Il y a uniterator.getRawResults()
pour obtenir l'accès à laDatabaseResults
classe. Sous Android, cela peut être converti en uneAndroidDatabaseResults
qui a ungetCursor()
méthode sur le retour d'AndroidCursor
.Quelque chose comme le code suivant:
C'est un peu compliqué, mais vous êtes certainement avoir à peer derrière la vallée pour arriver à cet objet qui est masqué par la base de données des classes d'abstraction.
CursorAdapter
la meilleure chose à utiliser avecOrmLiteBaseListActivity
?SimpleCursorAdapter
ouCursorAdapter
sous-classe de ma propre utilisé avec un Android Grille/ListView, je reçois unStaleDataException
-- j'ai remarqué en commentant laiterator.closeQuietly()
empêche que cela se produise. Que suggéreriez-vous à travailler autour de cela-à l'exception de l'observance de l'itérateur autour jusqu'à ce que je suis fait avec le curseur?Avez-vous essayer quelques-uns de Gris les conseils de cette post? Il explique comment vous pouvez sélectionner une colonne comme un autre nom, par exemple, select id _id.
Si vous êtes dans une Activité et ne veulent pas de déconner avec le QueryBuilder donner à la suite d'un go, qui est tout aussi efficace.
Si vous voulez dire la
getHelper()
méthode pour atteindre les méthodes dao créer etc. vous n'avez qu'à hériter de laOrmLiteBaseActivity<YourDBHelper>
et vous pouvez l'appeler. Il va chercher qqch comme ceci:Si vous voulez dire le curseur sur la poignée de la base de données de l'opération: je ne pense pas que vous puissiez l'atteindre! Mais je ne comprends pas pourquoi vous avez besoin pour elle. ORMLite a presque toutes les fonctions du curseur. Alors, de quoi avez-vous besoin?