I'M NEW
I'M NEW

Reputation: 63

retrofit android display data in textview

My questions may seem rudimentary i have this Post Req I'm kinda new in Retrofit2/javaAndroid

@POST("api/abcdefg")
        Call<ResponseBody> postResponse(@Body RequestBody requestBody);

and this dataModel

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;
    }
 }

I want to display them in a textview, but for now I can only display them in the Log.d and here is my main

@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) {

            }
        });

I know it's a simple question Thanks for replying ♥ Sorry , i took your time

Upvotes: 1

Views: 1476

Answers (1)

vikas kumar
vikas kumar

Reputation: 11018

considering you have a TextView in the layout for showing, then you can do something.

@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;
  }

Upvotes: 1

Related Questions