改造 android 在 textview 中显示数据
retrofit android display data in textview
我的问题可能看起来很简陋
我有这个 Post 请求
我有点新 Retrofit2/javaAndroid
@POST("api/abcdefg")
Call<ResponseBody> postResponse(@Body RequestBody requestBody);
和这个数据模型
public class Post {
private int id;
private String nam;
private String namk;
private String namp;
public int getId() {
return id;
}
public String getText() {
return text;
}
public String getNam() {
return nam;
}
public String getNamk() {
return namk;
}
public String getNamp() {
return namp;
}
}
我想在文本视图中显示它们,但现在我只能在 Log.d 中显示它们
这是我的主要
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textViewResult = findViewById(R.id.text_view_result);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://w.x.y.z:1111/")
.addConverterFactory(GsonConverterFactory.create())
.build();
//ApiInterface jsonPlaceHolderApi = retrofit.create(ApiInterface.class);
ApiInterface api = retrofit.create(ApiInterface.class);
String json = "{\n" +
"\"nam\":\"Alex\",\n" +
"\"namk\":\"\"\n" +
"}";
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"),json);
api.postResponse(requestBody).enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
try {
Log.d("RetrofitBruh", response.body().string());
} catch (IOException e){
e.printStackTrace();
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
}
});
我知道这是个简单的问题
谢谢回复♥
对不起,我耽误了你的时间
考虑到您在布局中有一个用于显示的 TextView,那么您可以做一些事情。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//text view for showing results from api
textViewResult = findViewById(R.id.text_view_result);
//here call the api
getApiResults();
}
private void getResults(){
getApiService().postResponse(getRequestModel()).enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
try {
Log.d("RetrofitBruh", response.body().string());
textViewResult.setText(response.body().string()); //setting text here
} catch (IOException e){
e.printStackTrace();
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
}
});
}
private ApiInterface getApiService(){
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://w.x.y.z:1111/")
.addConverterFactory(GsonConverterFactory.create())
.build();
ApiInterface api = retrofit.create(ApiInterface.class);
return api;
}
private RequestBody getRequestModel(){
String json = "{\n" +
"\"nam\":\"Alex\",\n" +
"\"namk\":\"\"\n" +
"}";
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"),json);
return requestBody;
}
我的问题可能看起来很简陋 我有这个 Post 请求 我有点新 Retrofit2/javaAndroid
@POST("api/abcdefg")
Call<ResponseBody> postResponse(@Body RequestBody requestBody);
和这个数据模型
public class Post {
private int id;
private String nam;
private String namk;
private String namp;
public int getId() {
return id;
}
public String getText() {
return text;
}
public String getNam() {
return nam;
}
public String getNamk() {
return namk;
}
public String getNamp() {
return namp;
}
}
我想在文本视图中显示它们,但现在我只能在 Log.d 中显示它们 这是我的主要
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textViewResult = findViewById(R.id.text_view_result);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://w.x.y.z:1111/")
.addConverterFactory(GsonConverterFactory.create())
.build();
//ApiInterface jsonPlaceHolderApi = retrofit.create(ApiInterface.class);
ApiInterface api = retrofit.create(ApiInterface.class);
String json = "{\n" +
"\"nam\":\"Alex\",\n" +
"\"namk\":\"\"\n" +
"}";
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"),json);
api.postResponse(requestBody).enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
try {
Log.d("RetrofitBruh", response.body().string());
} catch (IOException e){
e.printStackTrace();
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
}
});
我知道这是个简单的问题 谢谢回复♥ 对不起,我耽误了你的时间
考虑到您在布局中有一个用于显示的 TextView,那么您可以做一些事情。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//text view for showing results from api
textViewResult = findViewById(R.id.text_view_result);
//here call the api
getApiResults();
}
private void getResults(){
getApiService().postResponse(getRequestModel()).enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
try {
Log.d("RetrofitBruh", response.body().string());
textViewResult.setText(response.body().string()); //setting text here
} catch (IOException e){
e.printStackTrace();
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
}
});
}
private ApiInterface getApiService(){
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://w.x.y.z:1111/")
.addConverterFactory(GsonConverterFactory.create())
.build();
ApiInterface api = retrofit.create(ApiInterface.class);
return api;
}
private RequestBody getRequestModel(){
String json = "{\n" +
"\"nam\":\"Alex\",\n" +
"\"namk\":\"\"\n" +
"}";
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"),json);
return requestBody;
}