基本的にオンラインAPIのラッパー(HttpClientを使用していましたが、非同期タスクの利点/要件に気付き、Retrofit )。 Retrofitに移植して以来の問題は、Javaクラス(Wrapper)を自分のアクティビティと適切にやりとりする方法を知りたくないということです。Android - JavaラッパークラスとUIをやりとりさせる方法
私は多くのstackoverflow投稿を読んで、retrofitのOnFinishedイベントのインターフェースで試してみました。そこで、インターフェースにメソッドを渡してから、インターフェースのメソッドの変数を設定します。そして、私はそれがこのように見えたラッパーで
Entries entries = new MyWrapper().SearchRequest(someParameter, new ApiCallback(){
void onSearchRequestFinished(Entries entries){
//here I use the entries
}
}
でし活動に:
RequestBody postBodyObj = RequestBody.create(MediaType.parse("text/plain"), postBody);
Call<Entries> call = mInterface.searchRequest(postBodyObj);
call.enqueue(new Callback<Entries>() {
@Override
public void onResponse(Call<Entries> call, retrofit2.Response<Entries> response) {
Entries entries = response.body();
callback.onSearchRequestFinished(entries);
}
@Override
public void onFailure(Call<Entries> call, Throwable t) {
}
});
をこれに伴う問題は、常にnullを返すように見えるということです/パラメータが設定されていません。私が確認したり、(RetroFitからのOnFinishedクラスの)ラッパークラスの項目を記録していない場合は、nullではありません。
たぶん私は完全に間違ってこれを行うか、多分私はちょうど私の相互作用をよりよく(活動のwebrequestsを行う?)
感謝を設計する必要があります!
'null'なので、' callback'または 'entries'は次のとおりです。
はここで素敵なチュートリアルでは、どのように改造してそれを使用するのか? –
アクティビティのエントリ。したがって、最初のコード例では、searchrequestの結果であるエントリはnullです。 – user3024750