Android - 如何使UI与Jav​​a包装器类

时间:2016-11-29 18:23:16

标签: java android api retrofit

我有一个类,它基本上是在线api的包装器(用于使用HttpClient,但注意到异步任务的好处/要求,并选择使用Retrofit进行)。移植到Retrofit后的问题是我没有任何想法如何正确地使Java类(Wrapper)与我的Activity交互。

我已经阅读了很多stackoverflow帖子,在改进的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类中),它不为空。

也许我完全错了,或者我只需要更好地设计我的互动(在活动中做webrequests?)

谢谢!

1 个答案:

答案 0 :(得分:0)

想出怎么做,我只会使用Otto

这是一个很好的教程,如何在改造中使用它:link