Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:在MVVM中使用Transformations.switchMap进行顺序调用_Android_Mvvm_Android Livedata_Android Mvvm - Fatal编程技术网

Android:在MVVM中使用Transformations.switchMap进行顺序调用

Android:在MVVM中使用Transformations.switchMap进行顺序调用,android,mvvm,android-livedata,android-mvvm,Android,Mvvm,Android Livedata,Android Mvvm,我尝试对网络进行两次连续调用,其中第二次调用的参数是第一次调用的结果。我正在尝试使用MVVM和Transformations.switchMap执行此操作,但遇到异常“java.lang.IllegalArgumentException:无法为com.rdev.image.obj.flickresultsize类创建调用适配器”。有人知道怎么做吗 public LiveData<ArrayList<String>> getValuesAPI(String url) {

我尝试对网络进行两次连续调用,其中第二次调用的参数是第一次调用的结果。我正在尝试使用MVVM和Transformations.switchMap执行此操作,但遇到异常“java.lang.IllegalArgumentException:无法为com.rdev.image.obj.flickresultsize类创建调用适配器”。有人知道怎么做吗

public LiveData<ArrayList<String>> getValuesAPI(String url) {

    LiveData<ArrayList<String>> ids = AbsentLiveData.create();
    LiveData<ArrayList<String>> urls = AbsentLiveData.create();
    final MutableLiveData<ArrayList<String>> updatedResult = new MediatorLiveData<>();

    //This method waits until it has the data to process
    ids = Transformations.switchMap(getValues(url), apiResponse-> {
        ArrayList<String> listaIds = new ArrayList<>();

        if(apiResponse.isSuccessful()) {

            if (apiResponse.body != null) {

                FlickrPhotos flickrPhotos = new FlickrPhotos();
                flickrPhotos = apiResponse.body.getPhotos();
                FlickrResultSize flickrResultSizes = new FlickrResultSize();

                for(int i=0;i<flickrPhotos.getPhoto().size();i++){
                    String id = flickrPhotos.getPhoto().get(i).getId();

                    String link = Utils.createURL(2,id);

                    flickrResultSizes = getPhotos(link); -----------I want to call this, but I can't
                    Timber.d("depois do getPhotos");
                    listaIds.add(id);


                }

                updatedResult.postValue(listaIds);
            }

        }
    });

  return ids;
}

@有什么建议吗?@commonware有什么建议吗?
public FlickrResultSize getPhotos(String link){
    return mMainApiHelper.getPhotos(link);
}