2017-03-03 1 views
0

J'utilise la bibliothèque retrofit.J'ai créé une classe dans laquelle j'obtiens la valeur de l'id particulier de l'autre classe, et je veux aller chercher la liste particulière de cet id mais dans la méthode onResponse() je reçois une erreur. J'ai vérifié dans le facteur au format json la liste est en train de chercher ...... mais pas ici!Comment gérer la méthode onResponse à l'aide de la bibliothèque Retrofit?

public class Main2Activity extends AppCompatActivity implements Callback<MailChimpEmailResponse> { 

    public String idReceived; 
    List<MailChimpEmailResponseSecond> emailList = new ArrayList<>(); 
    private RecyclerView recyclerViewSecond; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main2); 

     Call<MailChimpEmailResponse> call = MailChimpAPIClient.getClient().fetchMembers(idReceived,"efb918ee88a3a8a77-us15"); 
     call.enqueue(this); 

    } 
    @Override 
    public void onResponse(Call<MailChimpEmailResponse> call, Response<MailChimpEmailResponse> response) { 
    Log.d("ashu", "null response"); 
     Intent intent = getIntent(); 
     idReceived = intent.getStringExtra("id_value"); 
     Log.d("ashu", "id received is: " + idReceived); 

     MailChimpEmailResponse listResponse = response.body(); 

     for (MailChimpEmailResponseSecond list : listResponse.emailLists) { 

      Log.d("ashu", list.getEmailListName()); 
      this.emailList = listResponse.emailLists; 

     } 

     recyclerViewSecond = (RecyclerView) findViewById(R.id.my_recycler_view_second); 
     LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); 
     recyclerViewSecond.setLayoutManager(linearLayoutManager); 
     EmailAdapter adapter = new EmailAdapter(this.emailList); 
     recyclerViewSecond.setAdapter(adapter); 
     adapter.notifyDataSetChanged(); 

    } 

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

    } 
} 

ma classe api:

public interface MailChimpApi { 


    @GET("lists") 
    public Call<MailChimpListResponse> fetchLists(@Query("apikey") String apikey, @Query("offset") int offset, @Query("count") int count); 


    @GET("lists/{list_id}/members") 
    public Call<MailChimpEmailResponse> fetchMembers(@Path("list_id") String listId,@Query("apikey") String apikey); 
} 

mon JSON:

{ 
    "members": [ 
    { 
     "id": "04d80020e78edd86a79eda", 
     "email_address": "[email protected]", 
     "unique_email_id": "784c772918", 
     "email_type": "html", 
     "status": "subscribed", 
     "merge_fields": { 
     "FNAME": "Ashsdjssh", 
     "LNAME": "kudjskjar" 
     }, 

Répondre

1

Je crois que la ligne suivante devrait être la méthode onCreate au lieu de onResponse,

idReceived = intent.getStringExtra("id_value");