2017-05-11 1 views
0

enter image description hereenter image description here 나는이 프로젝트를 "1"과 같은 테이블에서 모든 이름을 얻을하고자하는 이름은 어떻게 코드를 모든 이름이안드로이드와 JSON

public void capturarPersonagens(View view) { 

    //-- Retrofit 
    callPersonagem = service.getPersonagem("1"); 

    callPersonagem.enqueue(new Callback<Personagem>() { 
     @Override 
     public void onResponse(Call<Personagem> call, Response<Personagem> response) { 

      if (response.isSuccessful()) { 
       if (!call.isCanceled()) { 
        Log.i("Personagem",response.body().getName()); 
       } 
      } 
     } 
    } 
} 

안부 페드로 아르테

+0

, 당신의'service'를 정의하는 인터페이스 코드를 공유하십시오 :

public interface Service { @GET("people/{id}/?format=json") Call<Personagem> getPersonagem(@Path("id") String alacazam); @GET("people/?format=json") Call<ArrayList<Personagem>> getPersonagens(); } 

그런 다음, 당신은 당신이 getPersonagem했던 동일한 방식으로 소비 할 수 있습니다. 기본적으로 당신은 당신의 호출로 가정 할 때''1 ''로 식별되는 레코드뿐만 아니라 모든 레코드를 쿼리 할 수있는 새로운 메소드를 그 인터페이스에 추가해야합니다. – Gero

+0

http://www.dontpad.com/20170000 –

+0

죄송합니다. 인쇄 화면을 보내주십시오. –

답변

0

서비스 인터페이스에 새로운 메소드가 누락되었습니다.
api 엔드 포인트 people/?format=json은 웹 서비스의 실제 구현에 따라 다릅니다.

public void capturarPersonagens(View view) { 

    //-- Retrofit 
    callPersonagens = service.getPersonagens(); 

    callPersonagens.enqueue(new Callback<ArrayList<Personagem>>() { 
     @Override 
     public void onResponse(Call<ArrayList<Personagem>> call, Response<ArrayList<Personagem>> response) { 

      if (response.isSuccessful()) { 
       if (!call.isCanceled()) { 
        for(Personagem p:response.body()){ 
         Log.i("Personagem",p.getName()); 
        } 
       } 
      } 
     } 
     @Override 
     public void onFailure(Call<ArrayList<Personagem>> call, Throwable t) { 
      Log.e("SW", "" + t.getMessage()); 
     } 
    }); 
} 
+0

게로 감사합니다. 나중에 코드를 수정하고 알려 드리겠습니다. –