リスト内の各アイテムの追加アイテムを追加するために、リスト内の各アイテムを呼び出そうとしています。私はretrofit + RxJavaを使用しています。リスト内のアイテムへのAndroid API呼び出し
各ユーザーが電話をかけ、都合のいい郵便番号で市を取得するために、ユーザーのリストを取得する必要があります。
どのように私はこれを取得しようとしています。
public void getUsers() {
Observable<List<User>> userObservable = mService.getUsers()
.flatMapIterable(new Func1<List<User>, Iterable<User>>() {
@Override
public Iterable<User> call(List<User> user) {
return users;
}
})
.flatMap(new Func1<User, Observable<City>>() {
@Override
public Observable<City> call(User user) {
return mService.getCity(user.getAdress.getPostal_code);
}
})
.map(new Func1<User, City>() {
@Override
public City call(User user) {
return user.getAdress().getCity().getName();
}
})
サービス:
@GET("/somelink/users")
Observable<List<User>> getUsers();
@GET("/somelink/users/{code}")
Observable<City> getCity(@Path("code") String postalCode);
public class User {
@SerializedName("id")
@Expose
private Integer id;
@SerializedName("name")
@Expose
private String name;
@SerializedName("adress")
@Expose
private Adress adress;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.named = name;
}
public Adress getAdress() {
return adress;
}
public void setAdress(Adress adress) {
this.adress = adress;
}
}
public class Adress {
privare City;
@SerializedName("postal_code")
@Expose
private String postal_code;
@SerializedName("street")
@Expose
private String street;
public String getPostal_code() {
return postal_code;
}
public void setPostal_code(String postal_code) {
this.postal_code = postal_code;
}
public Adress getStreet() {
return adress;
}
public void setStreet(String street) {
this.street = street;
}
public City getCity() {
return city;
}
public void setCity(City city) {
this.city = city;
}
}
public class City {
@SerializedName("name")
@Expose
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
getUsers()マップ機能では
[
{
"id": 1
"name": "John Doe",
"adress": {
"postal_code": "somecode",
"street": "some Street ..."
}
},
{
"id": 2
"name": "Adam Smith",
"adress": {
"postal_code": "somecode",
"street": "some other Street ..."
}
]
を返し、私は "市がユーザーに適合するように、型変数のインスタンスが存在しない" エラーを得ました。私はエラーがモデルにあると思うが、それらを正しいものにする方法を知らない。私はRxjavaの初心者で、ここに問題があります。
質問を編集してください。まだコンパイルすべきではないいくつかのエラーがあります。 –