이번에는 저번 로그인 화면에서 로그인 버튼이 email과 password가 맞을 경우에만 눌리도록 해보겠습니다.
DB를 활용하지 않으니 emailOK와 passwordOK를 선언해서 사용자가 입력한 값이 이와 같으면 작동하도록 해봤습니다.
이번 코딩의 핵심은 EditText의 addTextChangedListener인데 로그를 보면 EditText에 값이 변할때마다 로그가 찍힙니다.
emil과 password의 값이 바뀔때 마다 inputEmail, inputPassword에 담고 validation에서 이 값이 emailOK와 passwordOK 같은지 확인하고 값이 같으면 RelativeLayout_login.setEnabled(true)해줍니다.
그전에 먼저 RelativeLayout_login.setEnabled(true)를 해줘야겠죠?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
package com.kplo.samplesenti;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
public class MainActivity extends AppCompatActivity {
TextInputEditText TextInputEditText_email, TextInputEditText_password;
RelativeLayout RelativeLayout_login;
String passwordOK="1111";
String inputEmail = "";
String inputPassword = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //activity 매칭
//1. 값을 가져온다 - 검사 (ahn3330@naver.com / 1111)
//2. 클릭을 감지한다
//3. 1번의 값을 액티비티로 넘긴다
TextInputEditText_email = findViewById(R.id.TextInputEditText_email); //activity_main에서 해당 id를 가져옴
TextInputEditText_password = findViewById(R.id.TextInputEditText_password);
RelativeLayout_login = findViewById(R.id.RelativeLayout_login);
RelativeLayout_login.setEnabled(false);
TextInputEditText_email.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
//Log.d("addTextChangedListener", charSequence.toString());
if(charSequence != null) {
inputEmail = charSequence.toString(); // charSequnece가 null이면 에러가 날수도
RelativeLayout_login.setEnabled(validation());
}
}
@Override
public void afterTextChanged(Editable editable) {
}
});
TextInputEditText_password.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
if(charSequence != null) {
inputPassword = charSequence.toString();
RelativeLayout_login.setEnabled(validation());
}
}
@Override
public void afterTextChanged(Editable editable) {
}
});
RelativeLayout_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) { //클릭시
String email = TextInputEditText_email.getText().toString(); //text값을 String으로 변환하여 가져오기
String password = TextInputEditText_password.getText().toString(); //getText가 Editable로 가져오기 때문에
//String으로 변환해준다
//LoginResultActivity로 값을 전달하고 이동하기 위한 작업
Intent intent = new Intent(MainActivity.this, LoginResultActivity.class);
intent.putExtra("email", email); //값 전달
intent.putExtra("password", password); //값 전달
startActivity(intent); //다음 activity로 넘어가기
}
});
}
public boolean validation(){
return inputEmail.equals(emailOK) && inputPassword.equals(passwordOK);
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
'개발 > Android' 카테고리의 다른 글
firebase를 이용한 android 앱 만들기에서 발생한 오류 해결법 모음 (0) | 2020.02.02 |
---|---|
안드로이드 스튜디오 첫 화면 (Activity) 설정 (0) | 2019.11.30 |
안드로이드 스튜디오 액티비티 이동, 값 넘기기, 클릭 이벤트 (0) | 2019.11.25 |
안드로이드 스튜디오 앱 레이아웃 따라하기2 (0) | 2019.11.24 |
안드로이드 스튜디오 앱 레이아웃 따라하기1 (0) | 2019.11.23 |
댓글