Je suis très novice dans la programmation Rx et j'essayais de la mettre dans un projet. Ce que je veux est que j'ai un objet de GamesInfoList comme indiqué ci-dessous:RxJava2: Filtrer une liste <Object> dans un Observable
@AutoValue
public abstract class GameInfoList {
public static TypeAdapter<GameInfoList> typeAdapter(Gson gson) {
return new AutoValue_GameInfoList.GsonTypeAdapter(gson);
}
public static Builder builder() {
return new AutoValue_GameInfoList.Builder();
}
public abstract long id();
@Nullable
public abstract String date_added();
@Nullable
public abstract String date_last_updated();
@Nullable
public abstract GameImages image();
@Nullable
public abstract String name();
@Nullable
public abstract List<GamePlatformInfo> platforms();
@AutoValue.Builder
public abstract static class Builder {
public abstract Builder id(long id);
public abstract Builder date_added(String date_added);
public abstract Builder date_last_updated(String date_last_updated);
public abstract Builder image(GameImages image);
public abstract Builder name(String name);
public abstract Builder platforms(List<GamePlatformInfo> platforms);
public abstract GameInfoList build();
}
}
Maintenant, je veux charger mes jeux par date et nom et j'ai écrit une méthode pour que pour accéder à cet objet ci-dessus en elle.
public void loadGamesByDateAndName(String date, String name) {
Timber.d("Load games by date: " + date + " and name: " + name);
remoteDataHelper
.getGamesListByDate(date)
.flatMapObservable(Observable::fromIterable)
.filter(game -> game.platforms() != null)
.filter(game -> game.platforms().name().contains(name))
.toList()
.subscribe(getObserverFiltered(name, false));
}
Ici, je filtration (en utilisant l'opérateur de filtre()), les plates-formes objet sur la base du nom entré dans ce procédé. La méthode ci-dessus me montre une erreur parce que la plate-forme est de type Liste. Comment puis-je filtrer dans la liste pour faire correspondre le nom et l'affichage dans mon application Android? Quels changements doivent être apportés à la méthode ci-dessus pour charger les données par date et nom?
Je suppose que cela devrait fonctionner très bien et, par conséquent, je vais accepter cette réponse. Je vais le tester une fois. Merci beaucoup!!! :-) –
Parfois, la solution la plus simple est la meilleure. Probablement, vous pouvez construire quelque chose de plus RXy et intelligent, mais à la fin, il sera juste plus difficile à comprendre pour la prochaine personne qui le lit. Ou pour vous un mois plus tard;) – theFunkyEngineer
Ouais je suppose. Les opérateurs sont si difficiles à garder à l'esprit. Besoin de les utiliser dans beaucoup de projets que je présume. –