2015-09-26 32 views
0

返回改造POJO也許你可以幫助我。我有一些問題要返回形式的方法,POJO與改造生成。從方法

我需要從類方法返回pojo生成與改造,加上一些修改爲德pojo。

這是方法:

public MensajeError iniciarSesion(String usuario,String password) 

,這是方法實現:

public MensajeError iniciarSesion(String usuario,String password) { 
    Conector apiService = 
      restAdapter.create(Conector.class); 

    apiService.iniciarSesion(usuario, password, new Callback<MensajeErrorR>() { 
     @Override 
     public void success(MensajeErrorR mensajeErrorR, Response response) { 


     } 

     @Override 
     public void failure(RetrofitError error) { 
      Log.v("TAG", "ACA HAY QUE HACER EL MANEJO DEL ERROR"); 
     } 

    }); 
    //here I need to get the mensajeErrorR pojo and make some modifications, and then return it. 

    return mensajeErrorR; //Maybe I will return another class, but with data from de POJO 
} 

我怎樣才能得到成功的方法mesajeErrorR POJO?在成功方法裏面一切都很好,我能夠毫無問題地看到mesajeErrorR值,我不知道如何訪問這個方法以外的數據。

對不起,我的英語xD

謝謝!!

+0

您需要將它重新放回主線程,或以主線程可以看到它的方式堅持它。現在,我用這輛巴士。 – EpicPandaForce

回答

0

有兩個答案是:

之一,是您Connector接口變化的宣言

void iniciarSesion(String usuario, String password, Callback<MensajeErrorr> callback); 

MensajeError iniciarSession(String usuario, String password 

,那麼你可以這樣寫:

MensajeError error = iniciarSession(usuario, password); 

,你的方法有錯誤。也就是說,如果在UI線程上調用iniciarSesion方法,這將不起作用 - 將拋出異常,因爲您不允許在主線程上進行網絡調用。

第二個答案是,您不能真正訪問您的方法中的錯誤對象。它正在通過回調接收,並且所有您可以執行的操作都是重構您的代碼,以便修改sucess回調中的錯誤對象,並使用修改後的數據調用另一個偵聽器。

+0

Gracias !!!謝謝!!! –