라디오 버튼을 제이슨에 체크한 것만 저장시키고 싶습니다.

조회수 1239회
public void EnollmentUser() {

            JSONObject mDataJO = new JSONObject();

            String adress = etmapname.getText().toString();
            String adress_descript = etadress.getText().toString();
            String roomInfo = etroomInfo.getText().toString();
            String described = etdescribed.getText().toString();
            String apartment = etRb.getText().toString();
            String hous = etRb1.getText().toString();
            int ug_include = etRgrp.getCheckedRadioButtonId();
            int deposit = Integer.parseInt(etPrice.getText().toString());
            int monthly_rent = Integer.parseInt(etmonthly_rent.getText().toString());
            int acreage = Integer.parseInt(etacreage.getText().toString());

        try {
            mDataJO.put("adress",adress);
            mDataJO.put("adress_descript",adress_descript);
            mDataJO.put("deposit",deposit);
            mDataJO.put("roomInfo",roomInfo);
            mDataJO.put("described",described);
            mDataJO.put("monthly_rent",monthly_rent);
            mDataJO.put("acreage",acreage);
            mDataJO.put("ug_include",ug_include);
            mDataJO.put("apartment",apartment);
            mDataJO.put("hous",hous);
            mDataJO.put("img",img);
            Log.e("dh","server req:\n"+mDataJO.toString());
            } catch (JSONException e) {
                e.printStackTrace();
            }
....

라디오 버튼을 제이슨에 추가하고 싶은데요. 라디오 버튼이 2개가 있고 그걸 라디오 그룹으로 묶어놨습니다.

실행을 시키면 제가 체크한 라디오버튼만 제이슨에 저장을 시키고 싶은데 두개다 저장이 됩니다.

제가 체크한 라디오버튼만 제이슨에 저장을 시키려면 어떻게 작성을 해야할까요? 부탁드리겠습니다..

1 답변

  • 위 코드에서 사용하신 것처럼 etRgrp.getCheckedRadioButtonId()를 사용해서 현재 체크된 라디오 버튼을 알아낼 수 있습니다. 코드에는 문제가 없는 것 같은데 두개 다 저장이 된다는 것이 의아하네요. 로그나 디버깅을 통해서 ug_include에 어떤 값이 할당되어 있는지 확인해보세요.

    만일 선택된 라디오 버튼이 없다면 getCheckedRadioButtonId() 함수가 -1을 반환하니 이 부분도 확인해보세요.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)