안녕하세요 안드로이드 json관련 질문입니다.


안녕하세요 매번 답변 주심에 감사드립니다. 다름이 아니라 json에서 password값을 받아와서 하는 테스트 소스를 하고 있는데요 password와 edittext에서 비밀번호가 맞으면 클릭시 다른 액티비티로 넘어가는 소스입니다. 근데 값이 잘 안들어와서 이렇게 남깁니다. json은 알맞게 잘 들어옵니다 json사이트는 테스트라서 제 번호에만 인식하게 되있어서요.. 어딘가 잘못 놓은건지 함수가 잘못된건지 몇일째 이러고 있어서 남깁니다.. 말이 장황해서 죄송하구요 계속 실시간으로 보고 있어서 혹시 답변 주시면 감사하겠습니다. 읽어주셔서 감사합니다.

public class Intro_activity extends AppCompatActivity {

    private EditText et_id, et_pw;
    private Button bt;
    public TelephonyManager telephonyManager;
    private AlertDialog.Builder alert;
    private final static String TAG = "Intro_activity";
    private String userName, userPass, phone, name, team, password;
    private TextView tv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.intro_activity);
        et_id = (EditText) findViewById(R.id.intro_et_id);
        et_pw = (EditText) findViewById(R.id.intro_et_pw);
        userName = et_id.getText().toString();
        userPass = et_pw.getText().toString();
        Log.d("user",userPass.toString());
        Log.d("userName",userName.toString());
        et_pw.requestFocus();
        tv = (TextView)findViewById(R.id.testTextView);
        tv.setText(userName);
        InputMethodManager imm = (InputMethodManager)this.getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.showSoftInput(this.et_pw, InputMethodManager.SHOW_FORCED);
        imm.showSoftInputFromInputMethod (this.et_pw.getApplicationWindowToken(),InputMethodManager.SHOW_FORCED);
        bt = (Button) findViewById(R.id.intro_bt);
        bt.setOnClickListener(mClickListener);
        getPhoneNumber();
        alert = new AlertDialog.Builder(Intro_activity.this);
        alert.setTitle("알림");
    }

    Button.OnClickListener mClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            switch (v.getId()) {

                case R.id.intro_bt: {
                    String errMsg = "";

                    if (et_id.getText().toString().equals("")) {
                        errMsg = "ID가 입력되지 않았습니다.";

                        Log.d(TAG, "RequestLogin JSONObject errMsg" + errMsg);


                        alert.setMessage(errMsg);
                        alert.setPositiveButton("확인", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                // TODO Auto-generated method stub
                                dialog.dismiss();
                            }
                        }).show();

//                  //커스텀 팝업 sample #########################################3
//                  AlertDialog.Builder builder =  new AlertDialog.Builder(this);
//                    View customLayout = View.inflate(this, R.layout.custom_dialog, null);
//
//                    builder.setTitle("custom dialog");
//                    builder.setView(customLayout);
//
//                    Button btnA01 = (Button)customLayout.findViewById(R.id.ButtonA01);
//                    View.OnClickListener btnA01Listener = new View.OnClickListener() {
//                     @Override
//                     public void onClick(View v) {
//
//                     }
//                    };
//                    btnA01.setOnClickListener(btnA01Listener);
//
//                    builder.show();

                        break;

                    } else if (et_pw.getText().toString().equals("")) {
                        errMsg = "비밀번호가 입력되지 않았습니다.";

                        Log.d(TAG, "RequestLogin JSONObject errMsg2" + errMsg);

                        alert.setMessage(errMsg);
                        alert.setPositiveButton("확인", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                // TODO Auto-generated method stub
                                dialog.dismiss();
                            }
                        }).show();

                        break;
                    }
//                    Intent intent = new Intent(Intro_activity.this, MainActivity.class);
//                    intent.putExtra("phone", phone);
//                    startActivity(intent);
//                    break;
            request();
                }
            }
        }
    };

    private void getPhoneNumber() {

        telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

        Log.d(TAG, "phone = " + phone);

        phone = telephonyManager.getLine1Number();
        if (10 > phone.length() || phone == null) {
            String errMsg = "전화번호 정보를 찾을수 없습니다. \n잠시 후 다시 실행 해주세요.";
            Log.d(TAG, "phone.length" + phone.length());
            alert.setMessage(errMsg);
            alert.setPositiveButton("확인", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub
                    dialog.dismiss();
                    finish();
                }
            }).show();
            if (phone.startsWith("+82")) {
                phone = phone.replace("+82", "0");
            }
            Log.d(TAG, "telManager.getLine1Number() " + telephonyManager.getLine1Number());
            Log.d(TAG, "phone " + phone);


//          Intent errActivity = new Intent(getApplicationContext(), ErrorActivity.class);
//          errActivity.putExtra("errMsg", "전화번호 정보를 찾을수 없습니다. 잠시 후 다시 실행 해주세요.");
//          startActivity(errActivity);
//          overridePendingTransition(R.anim.fade, R.anim.hold);
        }
        et_id.setText(phone);
    }

    public class SingActivity extends AsyncTask<String, Void, String> {

        HttpURLConnection urlConnection;
        StringBuilder result;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected String doInBackground(String... params) {
            result = new StringBuilder();
            urlConnection = null;
            try {
                URL url = new URL("http://dbserver.x-y.net/oh-android/json/json_login1.php?TEL=" + phone);
                urlConnection = (HttpURLConnection) url.openConnection();
                urlConnection.connect();
                InputStream in = new BufferedInputStream(urlConnection.getInputStream());
                BufferedReader reader = new BufferedReader(new InputStreamReader(in));
                String line;
                String result = "";
                while ((line = reader.readLine()) != null) {
                    result += line;
                }
                parseResult(result);
                // Close stream
                if (null != in) {
                    in.close();
                }
                return result;

            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                assert urlConnection != null;
                urlConnection.disconnect();
            }
            return result.toString();
        }

        @Override
        protected void onPostExecute(String result) {
            // Download complete. Lets update UI
        }

        private void parseResult(String result) {

            try {
                JSONArray response = new JSONArray(result);
                Log.d("result", result);
                for (int i = 0; i < response.length(); i++) {
                    password = response.getJSONObject(i).getString("Password");
                    phone = response.getJSONObject(i).getString("Phone");
                    team = response.getJSONObject(i).getString("Team");
                    name = response.getJSONObject(i).getString("Name");
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }
    public void request() {
        SingActivity singActivity = new SingActivity();
        singActivity.execute("");
        if (userPass == password) {
                Log.d("Password", userPass);
//            Toast.makeText(getApplicationContext(), userPass+"?",Toast.LENGTH_LONG).show();
            Toast.makeText(getApplicationContext(), password+"?",Toast.LENGTH_LONG).show();
                Intent intent = new Intent(Intro_activity.this, MainActivity.class);
                intent.putExtra("Phone", phone);
                startActivity(intent);
            } else {
                String errMsg = "";
                errMsg = "비밀번호가 틀립니다.";
            Toast.makeText(getApplicationContext(), userPass+"?",Toast.LENGTH_LONG).show();
                alert.setMessage(errMsg);
                alert.setPositiveButton("확인", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                }).show();
            }
        }
    }

임포트 부분은 길어서 뺏습니다.

  • 2016년 09월 23일에 작성됨
    취준생..ㅠ_ㅠ 안드로이드요

  • request() 의 Log.d("Password", userPass); 의 값은 찍히나요?    김선우   2016.9.23 11:09     
  • 관심가져주시고 소스 봐주시고 귀한시간 내어주셔서 감사합니다    한정희   2016.9.24 23:21     
  • 그 부분때문에 고생했었는데 잘 해결하였습니다 ㅠㅠ    한정희   2016.9.24 23:24     
  • 왠지 널값 때문에 그부분이 안찍힐 것 같았는데... 해결하셨다니 다행입니다~ 잘안풀릴때는 의심가는 부분부터 로그를 찍어가며 찾아간다면 쉽게 찾으실 수 있을거에요.     김선우   2016.9.25 13:01     
조회수 137


1 답변


좋아요
2
싫어요
채택취소하기

현재 구조에선 userPass가 항상 공백이겠군요.

userName = et_id.getText().toString(); userPass = et_pw.getText().toString();

구문을 request() 함수 첫줄 넣으시면 되겠네요.

  • 2016년 09월 23일에 작성됨
    개발일을 하고 있습니다. 서버 / 안드로이드

  • 감사합니다! Log 처음부터 다시 해봤는데 ㅠㅠ 감사합니다 많은 도움 됐습니다 귀한 시간 내서 봐주셔서 감사해요    한정희   2016.9.23 12:53     

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

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