이번에는 이렇게 만들었던 화면에서 Login을 누르면 LoginResultActivity로 이동하고 email과 password값을 전달 받도록 해보겠습니다.
로그인 화면이 MainActivity이고 그 레이아웃 파일이 activity_main.xml 로그인 눌렀을 때 이동되는 화면이 LoginResultActivity이고 그 레이아웃 파일이 activity_login_result.xml입니다.
LoginResultActivity와 activity_login_result.xml은 이번에 새로 만들 파일입니다.
먼저 activity_main에서 두 텍스트창과 로그인 버튼에 id를 부여해줍니다.
android:id="@+id/TextInputEditText_email"
android:id="@+id/TextInputEditText_password"
android:id="@+id/RelativeLayout_login"
각각의 태그안에 입력해주면 id가 부여됩니다.
다음은 MainActivity로 가서 다음 코드를 넣어줍시다.
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
|
public class MainActivity extends AppCompatActivity {
TextInputEditText TextInputEditText_email, TextInputEditText_password;
RelativeLayout RelativeLayout_login;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //activity 매칭
//1. 값을 가져온다
//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.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로 넘어가기
}
});
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
TextInputEditText 등에서 빨간줄 나면 import 해줍시다.
필요한 설명들은 주석으로 모두 써놨습니다.
다음으로 activity_login_result.xml을 생성하고 간단하게 TextView만 넣어 줍시다.
1
2
3
4
5
6
7
8
|
<TextView
android:id="@+id/TextView_get"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:textSize="30sp"
android:layout_weight="3"
/>
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
핵심은 여기에도 id를 부여하는 것이겠죠
그럼 마지막으로 LoginResultActivity를 생성하고 다음 코드를 작성해줍시다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
public class LoginResultActivity extends AppCompatActivity {
TextView TextView_get;
//main(String[] args)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_result); //activity 매칭
TextView_get = findViewById(R.id.TextView_get);
Intent intent = getIntent();
Bundle bundle = intent.getExtras(); //Extra들을 가져옴
String email = bundle.getString("email"); //가져온 Extars 중에서 꺼내기
String password = bundle.getString("password");
TextView_get.setText(email + "/" + password);
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
값을 가져올때는 bundle로 모든 extra들을 가져와서 그 bundle에서 값을 꺼내 넣어주는 식으로 가져옵니다.
드디어 완성하고 실행해서 Login버튼을 눌러주면
앱이 성공적으로 종료됩니다.
????????
이 문제는 우리가 Activity파일을 만든다고해서 앱에서 이 파일을 Activity로 생각하진 않기 때문에 발생합니다.
AndroidManifest.xml에서 이러한 Activity를 설정해줍니다.
AndroidManifest.xml에 위와같은 코드를 입력해주면 해결
잘 작동되는 모습
틀린 부분 지적해주시면 감사하겠습니다.
이 글은 유튜브 센치한 개발자님의 안드로이드 스튜디오 기초강의를 공부한 내용입니다.
'개발 > Android' 카테고리의 다른 글
안드로이드 스튜디오 첫 화면 (Activity) 설정 (0) | 2019.11.30 |
---|---|
안드로이드 스튜디오 addTextChangedListener를 이용한 로그인 로직 (0) | 2019.11.26 |
안드로이드 스튜디오 앱 레이아웃 따라하기2 (0) | 2019.11.24 |
안드로이드 스튜디오 앱 레이아웃 따라하기1 (0) | 2019.11.23 |
안드로이드 스튜디오 레이아웃 LinearLayout과 RelativeLayout (0) | 2019.11.23 |
댓글