How can I update Activity/Fragment UI from Retrofit onResponse()?

前端 未结 2 747
执念已碎
执念已碎 2021-01-23 06:13

I want to use Retrofit 2.1.0 for my next Android project. I would like to use Design Pattern and therefore create separate classes for every REST call i.e

IBalanceServ

2条回答
  •  野趣味
    野趣味 (楼主)
    2021-01-23 06:42

    Make an interface like this on:

    public interface BalanceListener {
    
        void onUserAvailable(User user);
    
    }
    

    In your BalanceRestClient have an instance of it. And in onResponse:

      @Override
      public void onResponse(Call call, Response response) {
    
          User user = response.body();  
    
          listener.onUserAvailable(user);
    
      }
    

    Make your Activity implement BalanceListner:

     public class BalanceActivity extends Activity implements BalanceListener {
                    ......
    
            @Override
            public void onUserAvailable(User user) {
                // update user views here
            }
        }
    

提交回复
热议问题