ответ не приходит от JSON с помощью модификации в Android - PullRequest
0 голосов
/ 07 декабря 2018

Привет в приведенном ниже коде отправляю метод как получить и получать ответ и хочу отобразить этот ответ, который нужно установить в переменные.

Но я не получаю никакого ответа от data.am, отправляющего метод get с использованиемэтот метод получает ответ. после того, как ответ был успешным, а затем необходимо установить для этого текста значение textviews

API.java:

public interface API {
    public static final String BASE_URL="ip address";

        @GET("/gateway_schedule")
        Call<List<GetScheduler>> getSchedulerData();

}

Scheduler.java:

mPreset.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                getCCTAndIntensityValuesForPreset();

            }
        });
private void getCCTAndIntensityValuesForPreset() {

    try {
        String url = "http://XXXXXXXXXX/";

        Retrofit retrofit = null;
        Log.d("123", "retrofit");

        if (retrofit == null) {
            retrofit = new Retrofit.Builder()
                    .baseUrl(url)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();
            Log.d("123", "build();");
        }


        API service = retrofit.create(API.class);

        Call<List<GetScheduler>> call = (Call<List<GetScheduler>>) service.getSchedulerData();
        Log.d("123", "Call<List<GetScheduler>> call = service.getSchedulerData();");
        call.enqueue(new Callback<List<GetScheduler>>() {
            @Override
            public void onResponse(Call<List<GetScheduler>> call, Response<List<GetScheduler>> response) {
                if(response!=null&&response.isSuccessful()){
                    String getLightId=response.body().get(0).getLight_id().toString();
                    Toast.makeText(getApplicationContext(),"Light Id"+getLightId,Toast.LENGTH_LONG).show();
                    //String light_id=response.body()
                }

            }

            @Override
            public void onFailure(Call<List<GetScheduler>> call, Throwable t) {

            }



        });

    }catch (Exception e) {Log.d("123", "Exception");}

}

Getscheduler.java:

public class GetScheduler {
@SerializedName("light_id")
private String light_id;
@SerializedName("intensity")
private int[] intensity;
@SerializedName("cct")
private int[] cct;

public String getLight_id() {
    return light_id;
}

public void setLight_id(String light_id) {
    this.light_id = light_id;
}

public int[] getIntensity() {
    return intensity;
}

public void setIntensity(int[] intensity) {
    this.intensity = intensity;
}

public int[] getCct() {
    return cct;
}

public void setCct(int[] cct) {
    this.cct = cct;
}

}

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

согласно вашему заданному коду все еще нужно GetScheduler Код класса, чтобы понять, какие данные вы анализируете.но все же, если вы получите Response, вы также можете проанализировать данные типа

List<GetScheduler> mclinet = null;
                    try {
                        Gson gson = new Gson();
                        Type type = new TypeToken<List<GetScheduler>>() {
                        }
                                .getType();
                        mclinet = gson.fromJson(YourresultString, type);
                    } catch (JsonSyntaxException e) {
                        e.printStackTrace();
                    }

add в build.gradle

 compile 'com.google.code.gson:gson:2.6.2'

Ваш класс GetSheduler должен быть похож на SerializedName со всеми необходимыми ключами, это просто образец

public class GetSheduler{

    @SerializedName("light_id")
    @Expose
    private String light_id;
    @SerializedName("CunNm")
    @Expose
    private String cunNm;

    public String getCunID() {
        return light_id;
    }

    public void setCunID(String cunID) {
        this.light_id= cunID;
    }

    public String getCunNm() {
        return cunNm;
    }

    public void setCunNm(String cunNm) {
        this.cunNm = cunNm;
    }

}
0 голосов
/ 07 декабря 2018

Добавьте GsonConverter для преобразования данных json в классы Pojo.

 if (retrofit == null) { 
      retrofit = new Retrofit.Builder()
                .baseUrl(BASE_URL) 
                .addConverterFactory(GsonConverterFactory.create()) 
                .build(); 
    }

и добавьте зависимость в файл build.gradle

compile 'com.squareup.retrofit2:converter-gson:2.3.0'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...