본문 바로가기
  • _^**_
무근본 IT 지식 공유/무근본 안드로이드(Android)

[무근본 안드로이드] 인형 가격 구하기

by 크리드로얄워터 2023. 4. 20.
반응형

[질문사항] 

 

안드로이드 프로그래밍....도와주세요
라디오 버튼 6개의 각각 두번째 항목이 선택된 게 초기화면이자 초기화 버튼을 눌럿을 때의 화면인데 총액 버튼을 누르면 선택된 항목의 갑이 더해져 나와야하는데 애뮬레이터를 켜고 바로는 되는데 초기화버튼을 누르고 나서 총액 버튼을 누르면 계산 버튼을 눌러도 0이더라구요 총액버튼을 누르면 2000이 떴으면 좋겠습니다.

public void onBtn1(View v){ //초기화 버튼

   rb2.setChecked(true);
    rb5.setChecked(true);

    this.cnt = 1; // 수량
   this.dollPrice = 0;
  this.sizePrice = 0;

    tv1.setText(cnt + "");
    Toast.makeText(getApplicationContext(), "전부 초기화하셨습니다.", Toast.LENGTH_SHORT).show();
}

 

[답변]

 

문제가 되는 코드 부분은 아래와 같이 초기화 버튼을 누를 때 실행되는 부분입니다.

rb2.setChecked(true);
rb5.setChecked(true);

this.cnt = 1; // 수량
this.dollPrice = 0;
this.sizePrice = 0;

 

위 코드에서 rb2.setChecked(true)와 rb5.setChecked(true)는 각각 첫 번째와 다섯 번째 라디오 버튼이 선택되어 있던 상태를 두 번째 라디오 버튼과 다섯 번째 라디오 버튼으로 변경합니다. 따라서 초기화 버튼을 누를 때 두 번째와 다섯 번째 라디오 버튼을 선택하지 않도록 수정해야 합니다.

그리고 dollPrice와 sizePrice는 각각 선택한 인형의 가격과 사이즈의 가격을 저장하는 변수인데, 초기화 버튼을 누를 때 이 변수들의 값을 0으로 설정하므로, 총액 버튼을 누르면 계산이 되지 않는 문제가 발생합니다. 따라서 이 변수들의 초기값을 라디오 버튼들의 가격으로 설정해야 합니다.

아래는 수정된 코드입니다.

// 각 라디오 버튼에 대한 가격
int[] dollPrices = {1000, 2000, 3000, 4000, 5000, 6000};
int[] sizePrices = {0, 500, 1000, 1500, 2000, 2500};

// 초기화 버튼
public void onBtn1(View v) {
    rb1.setChecked(true); // 첫 번째 라디오 버튼 선택
    rb3.setChecked(true); // 세 번째 라디오 버튼 선택

    this.cnt = 1; // 수량
    this.dollPrice = dollPrices[0]; // 인형 가격 초기값
    this.sizePrice = sizePrices[2]; // 사이즈 가격 초기값

    tv1.setText(cnt + "");
    Toast.makeText(getApplicationContext(), "전부 초기화하셨습니다.", Toast.LENGTH_SHORT).show();
}

// 총액 버튼
public void onBtn4(View v) {
    int total = cnt * (dollPrice + sizePrice);
    Toast.makeText(getApplicationContext(), "총액 : " + total, Toast.LENGTH_SHORT).show();
}

 

 

위 코드에서 dollPrices와 sizePrices 배열은 각 라디오 버튼에 대한 가격을 담은 배열입니다. 이 배열의 인덱스는 라디오 버튼의 인덱스와 일치합니다.

초기화 버튼을 누를 때는 첫 번째 라디오 버튼과 세 번째 라디오 버튼을 선택하도록 설정하고, dollPrice와 sizePrice를 각각 첫 번째 라디오 버튼과 세 번째 라디오 버튼의 가격으로 설정합니다.

총액 버튼을 누를 때는 선택한 인형과 사이즈의 가격을 더한 후 수량을 곱하여 총액을 계산합니다.

 

이때 dollPrice와 sizePrice는 선택한 라디오 버튼에 따라 값이 변경됩니다. 따라서 이 값들을 라디오 버튼 선택에 따라서 변경해주어야 합니다.

위와 같이 수정하면, 초기화 버튼을 누른 후 총액 버튼을 눌러도 0이 나오지 않고, 총액 버튼을 누르면 선택한 항목의 값이 더해져서 나오게 됩니다.

 

반응형

댓글