안녕하세요 안드로이드 json관련 질문입니다.
조회수 2494회
안녕하세요 매번 답변 주심에 감사드립니다. 다름이 아니라 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();
}
}
}
임포트 부분은 길어서 뺏습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
현재 구조에선 userPass가 항상 공백이겠군요.
userName = et_id.getText().toString(); userPass = et_pw.getText().toString();
구문을 request() 함수 첫줄 넣으시면 되겠네요.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력