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

조회수 1908회

안녕하세요 매번 답변 주심에 감사드립니다. 다름이 아니라 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();
            }
        }
    }

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

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

1 답변

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.