마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

switch case 관련해서 질문 올려봅니다

0 추천

라디오 그룹 2개에서 각각의 라디오 버튼 하나씩 선택해 버튼 누르고 값을 출력하고 싶은데 나오지 않습니다..

switch case를 지금 쓴 방식대로 하는게 맞는건지, 아니면 if-else를 써야하는지 굼금해서 질문 올려봅니다!

맨 아랫부분 볼드 처리 해놨습니다!

 




public class MainActivity extends AppCompatActivity {

    RadioGroup group, group2;
    RadioButton button1, button2, button3, button4,button5, button6;
    ImageView image;
    String str = "";
    RadioGroup radioGroup, radioGroup2;
    TextView price,tv,Result;
    Button button;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
        radioGroup2 = (RadioGroup) findViewById(R.id.radioGroup2);
        image = (ImageView) findViewById(R.id.imageView);

        price = (TextView) findViewById(R.id.textView);
        tv = (TextView) findViewById(R.id.textView);
        Result = (TextView) findViewById(R.id.Result);

        
        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v)
            {
                switch (v.getId())
                {
                    case R.id.Ame + R.id.Small:
                        Result.setText("1000원");
                        break;
                    case R.id.Ame + R.id.Medium:
                        Result.setText("1500원");
                        break;
                    case R.id.Ame + R.id.Large:
                        Result.setText("2000원");
                        break;
                    case R.id.Cafe + R.id.Small:
                        Result.setText("1000원");
                        break;
                    case R.id.Cafe + R.id.Medium:
                        Result.setText("1500원");
                        break;
                    case R.id.Cafe + R.id.Large:
                        Result.setText("2000원");
                        break;
                    case R.id.Capu + R.id.Small:
                        Result.setText("1500원");
                        break;
                    case R.id.Capu + R.id.Medium:
                        Result.setText("2000원");
                        break;
                    case R.id.Capu + R.id.Large:
                        Result.setText("2500원");
                        break;
                }
            }
        });

    }
}

until5219 (140 포인트) 님이 2020년 5월 8일 질문

1개의 답변

0 추천
다량의 id 비교는 case문 쓰는게 맞긴 한데...

R.id 값은 덧셈해서 쓰는 것 아닙니다. R.id 값 자체로 쓰세요.
디자이너정 (42,810 포인트) 님이 2020년 5월 8일 답변
...