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

spinner에 switch로 값을 줬는데 수식에서 작동하지 않습니다

0 추천

현재 독학으로 어플 제작 중인 학생입니다. 기초가 부실하다보니 간단한 어플리케이션 제작하는 데도 어려움이 많습니다ㅜㅜ 

아래처럼 spinner에 switch로 값을 줬는데 작동하지 않는지 이 변수를 사용하는 수식의 값이 모두 0으로 나옵니다. ㅜㅜ 

스위치 구문의 위치도 바꿔보고 했는데 해결되지 않아 질문 올립니다. 

 

public class MainActivityBeam extends AppCompatActivity {

    Button btn_beam, bs, bno;
    Spinner rebar_d;
    EditText beamrebar_num, beamfck, beamfy, beamd, beamb, bmu;
    TextView bbd, bpmax, bpmin, bfck1, bfck2, ba1, ba2, beamb2, bpimn, bc;

    double bbd_textView;
    double bAs;
    double bp;

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

        btn_beam = findViewById(R.id.bq);

        btn_beam.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getApplicationContext(), MainActivityBeamqu.class);
                startActivity(intent);
            }
        });

        bs =(Button) findViewById(R.id.bs);
        beamrebar_num = (EditText)findViewById(R.id.beamrebar_num);
        bbd = (TextView)findViewById(R.id.bbd);
        beamfck =(EditText) findViewById(R.id.beamfck);
        beamfy =(EditText) findViewById(R.id.beamfy);
        beamb =(EditText) findViewById(R.id.beamb);
        beamd =(EditText) findViewById(R.id.beamd);
        bfck1 =(TextView) findViewById(R.id.bfck1);
        bfck2 =(TextView) findViewById(R.id.bfck2);
        ba1 =(TextView) findViewById(R.id.ba1);
        ba2 =(TextView) findViewById(R.id.ba2);
        bpmax =(TextView) findViewById(R.id.bpmax);
        bpmin =(TextView) findViewById(R.id.bpmin);
        beamb2 =(TextView) findViewById(R.id.beamb2);
        bpimn =(TextView) findViewById(R.id.bpimn);

        bs.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                rebar_d=(Spinner)findViewById(R.id.rebar_d);
                ArrayAdapter rebar_dAdapter = ArrayAdapter.createFromResource(getApplicationContext(),R.array.rebar_d_array, android.R.layout.simple_spinner_item);
                rebar_dAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                rebar_d.setAdapter(rebar_dAdapter);

                beamrebar_num.addTextChangedListener(new TextWatcher() {
                    @Override
                    public void beforeTextChanged(CharSequence s, int i, int i1, int i2) {

                    }

                    @Override
                    public void onTextChanged(CharSequence s, int i, int i1, int i2) {

                    }

                    @Override
                    public void afterTextChanged(Editable editable) {
                        String brnum = rebar_d.getSelectedItem().toString();
                        int brnum_i = Integer.parseInt(brnum);

                        switch (brnum_i){
                            case 6:
                                bAs = 31.67;
                                break;
                            case 10:
                                bAs = 71.33;
                                break;
                            case 13:
                                bAs = 126.7;
                                break;
                            case 16:
                                bAs = 198.6;
                                break;
                            case 19:
                                bAs = 286.5;
                                break;
                            case 22:
                                bAs = 387.1;
                                break;
                            case 25:
                                bAs = 506.7;
                                break;
                            case 29:
                                bAs = 642.4;
                                break;
                            case 32:
                                bAs = 794.2;
                                break;
                            case 35:
                                bAs = 956.6;
                                break;
                            case 38:
                                bAs = 1140.0;
                                break;
                            case 41:
                                bAs = 1340.0;
                                break;
                            case 51:
                                bAs = 2027.0;
                                break;

                        }

                        if(beamrebar_num.getText().toString().length()<=0){
                            bbd_textView=1;
                        }else {
                            bbd_textView=Double.parseDouble(beamrebar_num.getText().toString());
                        }

                        bbd.setText(String.format("%.2f",bAs*bbd_textView));
                    }
                });

 

boolbodo (120 포인트) 님이 2021년 5월 18일 질문
브레이크 포인트를 걸고 디버깅을 해보세요. 금방 원인을 발견하실 수 있을 거예요.

beamrebar_num.addTextChangedListener 이 부분이 bs.setOnClickListener 안에 들어가 있는게 약간 수상쩍어 보이긴 하네요. bs버튼을 클릭하고 스피너가 동작하는지 체크해 보세요.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...