您好我正在尝试使用改造一切都很好。但我得到这样的输出。 [examples.sewoyebah.com.retrofit.model.Model@41ce7408,example.sewoyebah.com.retrofit.model.Model@41ce7698]
这是我的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
}]
答案 0 :(得分:0)
如果我更正,
public void onResponse(Call<List<Model>> call, Response<List<Model>> response) {
textData.setText(String.valueOf(response.body()));
Log.e("--success--", String.valueOf(response.body()));
}
您在响应中阅读的正文是一个Model对象列表。 如果要获取标题和消息值,则应该迭代此列表。
修改强> 你可以像这样迭代:
public void onResponse(Call<List<Model>> call, Response<List<Model>> response) {
for (Model eachModel : response.body())
{
Log.e("--success--", eachModel.title);
}
}
这将向控制台输出每个元素的标题。如果要在文本视图中显示所有标题,则可能需要创建列表或重构textview代码。