Как сохранить данные на сервере, чтобы тумблер включал / выключал выбранные значения? - PullRequest
0 голосов
/ 26 декабря 2018

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

простой переключатель означает, что его кнопка переключения с именами день / ночь.

еслиЯ переключаю на день, выбираю некоторые значения и затем следующий на ночной режим, затем выбираю некоторые значения.В день содержит 12 значений, а ночь содержит 12 значений.

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

Как передать 24 значения на сервер в моем случае

save / java:

mSave.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(simpleSwitch1.isOn()) {
                    ActiveProgressDialog();
                    getCCTAndIntensityValues(API.SET_APP_SCHEDULE);
                    //getCCTAndIntensityValuesSet();
                }
                else{
                    ActiveProgressDialog();
                    getCCTAndIntensityValues(API.SET_APP_SCHEDULE);
                }

            }

        });

public void getCCTAndIntensityValues (String schedulerType) {

            int cct1 = Integer.parseInt(String.valueOf(mCCT1.getProgress()));
            int cct2 = Integer.parseInt(String.valueOf(mCCT2.getProgress()));
            int cct3 = Integer.parseInt(String.valueOf(mCCT3.getProgress()));
            int cct4 = Integer.parseInt(String.valueOf(mCCT4.getProgress()));
            int cct5 = Integer.parseInt(String.valueOf(mCCT5.getProgress()));
            int cct6 = Integer.parseInt(String.valueOf(mCCT6.getProgress()));
            int cct7 = Integer.parseInt(String.valueOf(mCCT7.getProgress()));
            int cct8 = Integer.parseInt(String.valueOf(mCCT8.getProgress()));
            int cct9 = Integer.parseInt(String.valueOf(mCCT9.getProgress()));
            int cct10 = Integer.parseInt(String.valueOf(mCCT10.getProgress()));
            int cct11 = Integer.parseInt(String.valueOf(mCCT11.getProgress()));
            int cct12 = Integer.parseInt(String.valueOf(mCCT12.getProgress()));


            int intensity1 = Integer.parseInt(String.valueOf(mIntenisty1.getProgress()));
            int intensity2 = Integer.parseInt(String.valueOf(mIntenisty2.getProgress()));
            int intensity3 = Integer.parseInt(String.valueOf(mIntenisty3.getProgress()));
            int intensity4 = Integer.parseInt(String.valueOf(mIntenisty4.getProgress()));
            int intensity5 = Integer.parseInt(String.valueOf(mIntenisty5.getProgress()));
            int intensity6 = Integer.parseInt(String.valueOf(mIntenisty6.getProgress()));
            int intensity7 = Integer.parseInt(String.valueOf(mIntenisty7.getProgress()));
            int intensity8 = Integer.parseInt(String.valueOf(mIntenisty8.getProgress()));
            int intensity9 = Integer.parseInt(String.valueOf(mIntenisty9.getProgress()));
            int intensity10 = Integer.parseInt(String.valueOf(mIntenisty10.getProgress()));
            int intensity11 = Integer.parseInt(String.valueOf(mIntenisty11.getProgress()));
            int intensity12 = Integer.parseInt(String.valueOf(mIntenisty12.getProgress()));

            try {

                ArrayList<Integer> number = new ArrayList<>();
                number.add(intensity1);
                number.add(intensity2);
                number.add(intensity3);
                number.add(intensity4);
                number.add(intensity5);
                number.add(intensity6);
                number.add(intensity7);
                number.add(intensity8);
                number.add(intensity9);
                number.add(intensity10);
                number.add(intensity11);
                number.add(intensity12);

                JSONArray numberJson = new JSONArray();

                for (int i = 0; i < number.size(); i++) {

                    numberJson.put(i, number.get(i));

                }

                ArrayList<Integer> cctvalues = new ArrayList<>();
                cctvalues.add(cct1);
                cctvalues.add(cct2);
                cctvalues.add(cct3);
                cctvalues.add(cct4);
                cctvalues.add(cct5);
                cctvalues.add(cct6);
                cctvalues.add(cct7);
                cctvalues.add(cct8);
                cctvalues.add(cct9);
                cctvalues.add(cct10);
                cctvalues.add(cct11);
                cctvalues.add(cct12);


                JSONArray cctJsonArray = new JSONArray();
                if(cctJsonArray !=null) {
                    for (int i = 0; i < cctvalues.size(); i++) {

                        cctJsonArray.put(i, cctvalues.get(i));

                    }
                }
                RequestAsyntask mRequestAsyntask = new RequestAsyntask(mContext);

                try {
                    RequestBody requestBody = new FormEncodingBuilder()
                            .add("light_id", lightid)
                            .add("intensity", numberJson.toString())
                            .add("cct",cctJsonArray.toString() ).build();
                    Request request = new Request.Builder().url(BASE_URL + schedulerType).post(requestBody).build();

                    mRequestAsyntask.runDataRetriver(request, false);
                    Log.i(TAG, "Sending---" + BASE_URL + schedulerType + "\n" + "light_id:" + lightid + "\n" + "intensity:" + numberJson.toString() + "\n" + "cct:" + cctJsonArray.toString());

                    mRequestAsyntask.setResponseListener(new ResponseCallback() {
                        @Override
                        public void success(String response) {
                            Log.i(TAG, "Response:" + response);

                        }
                    });
                } catch (Exception e) {
                    e.printStackTrace();
                }


            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }

1 Ответ

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

Попробуйте заменить ваш код этим

private JSONArray numberJson = new JSONArray();
private JSONArray cctJsonArray = new JSONArray();
ToggleButton toggle = (ToggleButton) findViewById(R.id.togglebutton);
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if (isChecked) {
            // The toggle is enabled
    getCCTAndIntensityValues(API.SET_APP_SCHEDULE);
                    //getCCTAndIntensityValuesSet();
        } else {
            // The toggle is disabled
    getCCTAndIntensityValues(API.SET_APP_SCHEDULE);
        }
    }
});
mSave.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ActiveProgressDialog();
    RequestAsyntask mRequestAsyntask = new RequestAsyntask(mContext);

                try {
                    RequestBody requestBody = new FormEncodingBuilder()
                            .add("light_id", lightid)
                            .add("intensity", numberJson.toString())
                            .add("cct",cctJsonArray.toString() ).build();
                    Request request = new Request.Builder().url(BASE_URL + 
    schedulerType).post(requestBody).build();

                    mRequestAsyntask.runDataRetriver(request, false);
                    Log.i(TAG, "Sending---" + BASE_URL + schedulerType + "\n" + 
    "light_id:" + lightid + "\n" + "intensity:" + numberJson.toString() + "\n" + "cct:" + 
    cctJsonArray.toString());

                    mRequestAsyntask.setResponseListener(new ResponseCallback() {
                        @Override
                        public void success(String response) {
                            Log.i(TAG, "Response:" + response);

                        }
                    });
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }

        });
public void getCCTAndIntensityValues (String schedulerType) {

            int cct1 = Integer.parseInt(String.valueOf(mCCT1.getProgress()));
            int cct2 = Integer.parseInt(String.valueOf(mCCT2.getProgress()));
            int cct3 = Integer.parseInt(String.valueOf(mCCT3.getProgress()));
            int cct4 = Integer.parseInt(String.valueOf(mCCT4.getProgress()));
            int cct5 = Integer.parseInt(String.valueOf(mCCT5.getProgress()));
            int cct6 = Integer.parseInt(String.valueOf(mCCT6.getProgress()));
            int cct7 = Integer.parseInt(String.valueOf(mCCT7.getProgress()));
            int cct8 = Integer.parseInt(String.valueOf(mCCT8.getProgress()));
            int cct9 = Integer.parseInt(String.valueOf(mCCT9.getProgress()));
            int cct10 = Integer.parseInt(String.valueOf(mCCT10.getProgress()));
            int cct11 = Integer.parseInt(String.valueOf(mCCT11.getProgress()));
            int cct12 = Integer.parseInt(String.valueOf(mCCT12.getProgress()));


            int intensity1 = Integer.parseInt(String.valueOf(mIntenisty1.getProgress()));
            int intensity2 = Integer.parseInt(String.valueOf(mIntenisty2.getProgress()));
            int intensity3 = Integer.parseInt(String.valueOf(mIntenisty3.getProgress()));
            int intensity4 = Integer.parseInt(String.valueOf(mIntenisty4.getProgress()));
            int intensity5 = Integer.parseInt(String.valueOf(mIntenisty5.getProgress()));
            int intensity6 = Integer.parseInt(String.valueOf(mIntenisty6.getProgress()));
            int intensity7 = Integer.parseInt(String.valueOf(mIntenisty7.getProgress()));
            int intensity8 = Integer.parseInt(String.valueOf(mIntenisty8.getProgress()));
            int intensity9 = Integer.parseInt(String.valueOf(mIntenisty9.getProgress()));
            int intensity10 = 
    Integer.parseInt(String.valueOf(mIntenisty10.getProgress()));
            int intensity11 = 
    Integer.parseInt(String.valueOf(mIntenisty11.getProgress()));
            int intensity12 = 
    Integer.parseInt(String.valueOf(mIntenisty12.getProgress()));

            try {

                ArrayList<Integer> number = new ArrayList<>();
                number.add(intensity1);
                number.add(intensity2);
                number.add(intensity3);
                number.add(intensity4);
                number.add(intensity5);
                number.add(intensity6);
                number.add(intensity7);
                number.add(intensity8);
                number.add(intensity9);
                number.add(intensity10);
                number.add(intensity11);
                number.add(intensity12);



                for (int i = 0; i < number.size(); i++) {

                    numberJson.put(i, number.get(i));

                }

                ArrayList<Integer> cctvalues = new ArrayList<>();
                cctvalues.add(cct1);
                cctvalues.add(cct2);
                cctvalues.add(cct3);
                cctvalues.add(cct4);
                cctvalues.add(cct5);
                cctvalues.add(cct6);
                cctvalues.add(cct7);
                cctvalues.add(cct8);
                cctvalues.add(cct9);
                cctvalues.add(cct10);
                cctvalues.add(cct11);
                cctvalues.add(cct12);

                if(cctJsonArray !=null) {
                    for (int i = 0; i < cctvalues.size(); i++) {
                        cctJsonArray.put(i, cctvalues.get(i));
                    }
                }

            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
...