2016-05-16 26 views
0

我在Android中使用POJO和Retrofit2來調用REST服務來獲取一些數據。我確實收到了response.body()中的數據,但我不希望將這些數據分配給任何android UI組件。我想獲得這個返回的對象並返回或者在onResponse之外工作。Retrofit 2返回響應數據對象以供進一步使用

對不起,我是新來的JAVA或回調,但搜索發現,我需要編寫回調,但不知道如何寫它。有人可以請幫助。

下面是代碼:

public String getUserIPCountry(Context context){  

    ipf = new Ipinfo(); 

    IpinfoAPI.Factory.getInstance().getCountryCode().enqueue(new Callback<Ipinfo>() { 
     @Override 
     public void onResponse(Call<Ipinfo> call, Response<Ipinfo> response) { 

      if(response.isSuccessful()){ 

       //Want to return/use below data outside of this method 
       //response.body().getCountryCode(); 
      } 
     } 

     @Override 
     public void onFailure(Call<Ipinfo> call, Throwable t) { 

     } 
    }); 

    return null; 
}  

回答

0

在操作getUserIPCountry您設置的Callback當數據從服務器到達時,將調用。 執行不會停止並等待響應。 如果服務器的響應正常,則會調用onResponse,如果出現問題,將調用onFailure

因此,在CallbackonResponse方法中,您應該通知感興趣的類數據到達(例如,顯示數據的ui類)。

+0

謝謝巴勃羅。我只能將數據設置爲UI元素或在響應中工作。我想要的是 - 我有一個對象public Ipinfo xyz,它是在ipinfo類型的oncreate方法中創建和分配的。所以xyz的一部分被賦值爲getUserIPCountry方法的外部,並且希望僅在響應中使用xyz.setip()來分配IP字段。 –