2016-03-29 2 views
0

Привет, я пытаюсь использовать модифицированное устройство, все в порядке. Но я получаю такой результат. [[email protected], [email protected]]Получение странного вывода

Вот мой MainActivity

public class MainActivity extends AppCompatActivity { 

@Bind(R.id.activity_main_tv_display) 
TextView textData; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    ButterKnife.bind(this); 
} 

@OnClick(R.id.activity_main_btn_show) 

void press() { 
    RemoteApi.Factory.getInstance().getModel().enqueue(new Callback<List<Model>>() { 
     @Override 
     public void onResponse(Call<List<Model>> call, Response<List<Model>> response) { 
      textData.setText(String.valueOf(response.body())); 
      Log.e("--success--", String.valueOf(response.body())); 
     } 

     @Override 
     public void onFailure(Call<List<Model>> call, Throwable t) { 
      Log.e("--fail--", t.getMessage()); 
     } 
    }); 
} 
} 

Это моя модель

public class Model { 

@SerializedName("Title") 
@Expose 
private String Title; 
@SerializedName("Message") 
@Expose 
private String Message; 
@SerializedName("id") 
@Expose 
private int id; 
// getters and setters declare 
} 

Вот мой интерфейс

public interface RemoteApi { 

String BASE_URL = "xyz/"; 
@GET("api/Cards") 
Call<List<Model>> getModel(); 
class Factory { 
    public static RemoteApi remoteApi; 
    public static RemoteApi getInstance() { 
      Retrofit retrofit = new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create()) 
        .baseUrl(BASE_URL) 
        .build(); 
      remoteApi = retrofit.create(RemoteApi.class); 
      return remoteApi; 
     } 
    } 
} 

И мой API выглядит следующим образом

[{ 
    "Title": "xyz", 
    "Message": "hello", 
    "id": 1 
}, { 
    "Title": "abc", 
    "Message": "hello", 
    "id": 2 
}] 

ответ

1

Если я правильно,

public void onResponse(Call<List<Model>> call, Response<List<Model>> response) { 
     textData.setText(String.valueOf(response.body())); 
     Log.e("--success--", String.valueOf(response.body())); 
    } 

тело вы читаете здесь, в ответ список объектов модели. Возможно, вы должны переименовать этот список, если хотите получить значения заголовка и сообщения.

Edit Вы можете перебирать, как это:

public void onResponse(Call<List<Model>> call, Response<List<Model>> response) { 
    for (Model eachModel : response.body()) 
    { 
     Log.e("--success--", eachModel.title); 
    } 
} 

Это будет выводить на консоль название каждого элемента. Вам может потребоваться создать список или реорганизовать ваш код текстового просмотра, если вы хотите отображать все заголовки в текстовом виде.

+0

Выполнено. Почему -1? – TooManyEduardos

+0

Ой, извините. Это должен быть response.body() – TooManyEduardos

Смежные вопросы