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

Dialog 가 지정하지 않은 버튼에서 떠버려요;;

0 추천
@Override
    public void onClick(View view)
    {
        switch(view.getId()) {
            case R.id.button1:

                if (editText1.getText().toString().length() != 0 && editText2.getText().toString().length() != 0) {
                    String id = editText1.getText().toString();
                    String pw = editText2.getText().toString();
                    LoginMysql login = new LoginMysql(id, pw);
                    LoginMysql.active = true;
                    login.start();
                } else {
                    Toast.makeText(this, "입력해주세요.", Toast.LENGTH_SHORT).show();

                    break;
                }

            case R.id.button2:  // <-  button1 버튼을 눌렀을 때 button1의 코드는 실행이되지만 button2번의 dialog 까지 실행이되버립니다;; 물론 button2눌렀을때는 dialog만 실행이되구요;;;;

 

                AlertDialog.Builder builder;
                builder = new AlertDialog.Builder(this);
                builder.setTitle("회원 가입").
                        setMessage("회원 가입 정보를 모두 입력해주세요.");

                final LayoutInflater inflater = getLayoutInflater();
                View layout = inflater.inflate(R.layout.user_layout, null);
                builder.setView(layout);

                final Button id = (Button) layout.findViewById(R.id.UserId);
                final Button pw = (Button) layout.findViewById(R.id.UserPw);

                final EditText name = (EditText) layout.findViewById(R.id.UserName);
                final EditText age = (EditText) layout.findViewById(R.id.UserAge);
                final EditText phone = (EditText) layout.findViewById(R.id.UserPhone);
                final EditText mail = (EditText) layout.findViewById(R.id.UserMail);
                final EditText address = (EditText) layout.findViewById(R.id.UserAddress);

                if(id_ok)
                {
                    id.setText(getid);
                }
                else
                {
                    id.setText("버튼을 누르세요.");
                }

                if(pw_ok)
                {
                    pw.setText("비밀번호 입력완료");
                }
                else
                {
                    pw.setText("비밀번호 설정하기");
                }

 

                id.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        tempName=name.getText().toString();
                        tempAge=age.getText().toString();
                        tempPhone=phone.getText().toString();
                        tempMail=mail.getText().toString();
                        tempAddress=address.getText().toString();
                        Intent i = new Intent(mContext,ChkId.class);
                        startActivityForResult(i, code_chkid);
                    }
                });

                pw.setOnClickListener(new View.OnClickListener()
                {
                    @Override
                    public void onClick(View view)
                    {
                        tempName=name.getText().toString();
                        tempAge=age.getText().toString();
                        tempPhone=phone.getText().toString();
                        tempMail=mail.getText().toString();
                        tempAddress=address.getText().toString();

                    }
                });

                builder.setPositiveButton("가입하기", new DialogInterface.OnClickListener()
                {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        String infoId = id.getText().toString();
                        String infoName = name.getText().toString();
                        String infoAge = age.getText().toString();
                        String infoPhone = phone.getText().toString();
                        String infoMail = mail.getText().toString();
                        String infoAddress = address.getText().toString();
                        String getpw = pw.getText().toString();

                        if (infoId.length() != 0 && infoName.length() != 0 && infoAge.length() != 0 && infoPhone.length() != 0 && infoMail.length() != 0 && infoAddress.length() !=0 && getpw.length() != 0)
                        {
                            sql_control.userRegist(infoId,infoName,infoAge,infoPhone,infoMail,infoAddress, getpw);
                        }
                        else
                        {
                            Toast.makeText(getApplication(), "정보를 입력해주세요.", Toast.LENGTH_SHORT).show();
                        }

                    }
                }).setNegativeButton("돌아가기", new DialogInterface.OnClickListener()
                {
                    @Override
                    public void onClick(DialogInterface dialog, int which)
                    {
                        getid = getpw = tempName=tempAge=tempPhone=tempMail=tempAddress="";
                        Toast.makeText(getApplication(),"회원가입이 취소되었습니다.", Toast.LENGTH_SHORT).show();
                    }
                }).create();

                manageDialog=builder.show();
        }
    }

 

하 진짜 왜그런걸까요;;;;
알파고 (4,320 포인트) 님이 2017년 2월 20일 질문

1개의 답변

0 추천
 
채택된 답변
으음... 그....

스윗치 케이스문에서 첫 케이스가 else일 경우만 break인거 같은데,

break를 if문이 완전히 끝난뒤 쓰시고 다음 케이스 가시면 안나지 않을까요
sandring (840 포인트) 님이 2017년 2월 20일 답변
알파고님이 2017년 2월 21일 채택됨
둘다 실행되는 이유는 디버깅을 해봐야 확실해 질거 같네요. 걍 저 부분들 싹다 체크하고 디버그 런 하셔서 스위치 값이 뭐가 들어오고 어떤식으로 작동되나 확인해 보심이
...