为什么我不能向这个 Observable 添加一个观察者?
Why can't I add an observer to this Observable?
以下是我的代码,我遵循了 this 文章:
public static final String BASE_URL = "https://newsapi.org/";
public static final String ENDPOINT = "/v2/top-headlines";
public static final String KEY = "my_key";
public static final String C_CODE = "us";
// main API ="https://newsapi.org/v2/top-headlines?country=us&apiKey=my_key
public interface ResponseClient {
@GET(ENDPOINT)
Observable<MResponse> getArticles(@Query("apiKey") String key, @Query("country") String countryCode);
}
public static Observable<MResponse> loadDataViaRetroFit() {
Moshi moshi = new Moshi.Builder().build();
MoshiConverterFactory pojoConvertorMoshi = MoshiConverterFactory.create(moshi);
OkHttpClient okHttpClient= new OkHttpClient.Builder().build();
Retrofit retrofit =
new Retrofit.Builder().client(okHttpClient).baseUrl(BASE_URL)
.addConverterFactory(pojoConvertorMoshi)
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
ResponseClient client = retrofit.create(ResponseClient.class);
Observable<MResponse> myObservable = client.getArticles(KEY,C_CODE);
return myObservable;
}
根据那篇文章,我应该能够调用这个函数并注册一个观察者来观察我的 activity 的变化,但这并没有显示为一个选项。
我做错了什么?更令人困惑的是,为什么我应该是提供MResponse
的人?
MResponse
是响应的 POJO class,改造将用于 JSON 响应的自动转换,我想观察它。
您输入错误 Observable
class。您已导入 android.database.Observable
instead of io.reactivex.Observable
。切换导入应该可以解决它。
以下是我的代码,我遵循了 this 文章:
public static final String BASE_URL = "https://newsapi.org/";
public static final String ENDPOINT = "/v2/top-headlines";
public static final String KEY = "my_key";
public static final String C_CODE = "us";
// main API ="https://newsapi.org/v2/top-headlines?country=us&apiKey=my_key
public interface ResponseClient {
@GET(ENDPOINT)
Observable<MResponse> getArticles(@Query("apiKey") String key, @Query("country") String countryCode);
}
public static Observable<MResponse> loadDataViaRetroFit() {
Moshi moshi = new Moshi.Builder().build();
MoshiConverterFactory pojoConvertorMoshi = MoshiConverterFactory.create(moshi);
OkHttpClient okHttpClient= new OkHttpClient.Builder().build();
Retrofit retrofit =
new Retrofit.Builder().client(okHttpClient).baseUrl(BASE_URL)
.addConverterFactory(pojoConvertorMoshi)
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
ResponseClient client = retrofit.create(ResponseClient.class);
Observable<MResponse> myObservable = client.getArticles(KEY,C_CODE);
return myObservable;
}
根据那篇文章,我应该能够调用这个函数并注册一个观察者来观察我的 activity 的变化,但这并没有显示为一个选项。
我做错了什么?更令人困惑的是,为什么我应该是提供MResponse
的人?
MResponse
是响应的 POJO class,改造将用于 JSON 响应的自动转换,我想观察它。
您输入错误 Observable
class。您已导入 android.database.Observable
instead of io.reactivex.Observable
。切换导入应该可以解决它。