Je tente de faire un simple MVP dans Android en utilisant AndroidAnnotations et Retrofit2, Mais je ne reçois jamais l'information.Modèle Présentateur avec AA et Retrofit, ne pas obtenir de données
code Présentateur:
public class ListHomePresenter {
private List<Post> mPost;
Client client;
int error_code = 0;
String error_msg = "";
/**
* TODO: get all post
* */
public List<Post> getPost() throws SampleExceptions{
RestService restService;
client = new Client();
restService = client.getApi();
Call<List<Post>> task = restService.downloadPost();
task.enqueue(new Callback<List<Post>>() {
@Override
public void onResponse(Call<List<Post>> call, Response<List<Post>> response) {
mPost = response.body();
}
@Override
public void onFailure(Call<List<Post>> call, Throwable t) {
mPost = null;
error_code = 1; // error
error_msg = t.getMessage(); // message
}
});
if(error_code == 1)
throw new SampleExceptions(error_code, "Error");
return mPost;
}
}
code Activité
@EActivity(R.layout.activity_home)
HomeActivity public class étend AppCompatActivity {
@ViewById(R.id.rvPosts)
RecyclerView mRvPost;
PostAdapter mPostAdapter;
ListHomePresenter mListHomePresenter;
private StaggeredGridLayoutManager gaggeredGridLayoutManager;
@AfterViews
void setupHome(){
downloadPost();
}
@UiThread(propagation = Propagation.REUSE)
void downloadPost(){
try{
mListHomePresenter = new ListHomePresenter();
gaggeredGridLayoutManager = new StaggeredGridLayoutManager(2, 1);
mRvPost.setLayoutManager(gaggeredGridLayoutManager);
mPostAdapter = new PostAdapter(HomeActivity.this, mListHomePresenter.getPost());
mRvPost.setAdapter(mPostAdapter);
}catch (SampleExceptions e){
}
}
}
mais, jamais j'obtiens les données nulles.
Aidez-moi!
Vous pouvez voir cet exemple pour clarifier les concepts [Android MVP] (https://github.com/antoniolg/androidmvp) –
Comment utiliser la méthode d'interface dans mon fonction de présentateur? je suis instancié, mais obtenir l'erreur –
Définir l'interface d'affichage dans le constructeur du présentateur –