GDSC HUFS 3기/Android with Kotlin Team 3

[3팀] 8.액티비티 값주고받기 뷰바인딩

알 수 없는 사용자 2021. 11. 6. 22:01

이 글은 이것이 안드로이드다 with 코틀린(개정판)를 참고하여 작성하였습니다.

작성자 : 심덕수

개발환경은 Windows, Android Studio입니다. 

 

 

1.프로그램의 ‘Entry Point(시작점)’ 알기

 

 

-> 안드로이드의 경우 manifest 다. ( 상세하게는 onCreate에서 시작된다.)

2.서브 엑티비티 만들기

-> Generate a Layout File 해제하면 layout file 수동으로 만들어서 사용하면 된다.  

 

-> 네이밍 규칙 : 앞에 자동으로 activity 붙여줘서 Activity Name  뒤에 Activity 붙인다면 Layout Name에는 생략된다.  

-> 만약 Launcher Activity 체크를 한다면 subActivity 시작점이 되어 manifest <intent-filter>가 subActivity 사이에 위치하게 된다. *액티비티 이름은 refector에서 rename가능하다. 

 

*주의

-> id rename   ‘Current File’ 해야 현재 파일에서만 영향을 미치게   있다.

Intent 변수에 subActivity 담아서 startActivity intent 담아서 실행하면 이렇게 버튼을 누르면 서브 엑티비티를 실행하게   있다. 

 

 

 

3.메인 엑티비티에서 서브 엑티비티로  전달하기

 Intent putExtra함수를 이용해서 값을 전달한다. 

-> bundle이라고 하는 이유는 intent 값을 담는데 값이 담기는 공간이 bundle이라는 클래스로 정의가 되어 있다. 

-> putExtra함수는 value값에 어떤 타입을 넣느냐에 따라 타입이 자동으로 결정된다. 

-> 하지만 꺼낼 때는 타입을 지정해서 꺼내야한다. 

4. SubActivity code

-> 서브 엑티비티는 with 스코프 함수를 사용해서 binding 사용해 값을 받아오는데 앞에 말했듯이 value값의 타입을 지정해서 꺼내야한다. (getStringExtra, getIntExtra)

-> text에는 int값이 바로 들어올  없으므로 문자열 템플릿을 사용해 감싸줘야한다.  

5. 서브엑티비티에서 종료하면서 메인엑티비티로 값을 돌려주기

startActivityForResult -> 호출하는 엑티비티에서 결과값을 받겠다. 

 -> requestCode : 위젯들이 모두  결과값을 받는 형태일 수도 있기 때문에 내가 호출한 위치를 확인하기 위해서 요청 코드를 사용. 

 

6. SubActivity.kt

 

#MainActivity.kt

 

-> 서브 엑티비티가 finish()되면 result_ok requestcode 비교 후에 토스트 메세지를 띄우며 메인엑티비티로 값을 돌려준다.