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


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개가 있고 그걸 라디오 그룹으로 묶어놨습니다.

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

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

  • 2016년 09월 29일에 수정됨
    Software Engineer
  • 2016년 09월 29일에 작성됨
    학생입니다

조회수 101


1 답변


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

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


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close