intent는 Activity간 데이터를 주고 받을 때 매우 유용한 녀석이다.
별다른 인자없이 새 액티비티를 시작한다면 다음과 같이
intent에 클래스 정보 매개변수로 생성하고
startActivity 메소드를 호출하는 것 만으로도 충분하다.
-
단순히 새 액티비티를 생성하고자 한다면?
기존 액티비티: StoreInfoUpdate => 시작 액티비티 : BusinessHourPick
val intent = Intent(this@StoreInfoUpdate, BusinessHourPick::class.java)
intent.putExtra("Key", "Value")
startActivity(intent)
-
Activity A에서 Activity B를 시작하고 B에서 입력받은 값을 Activity A에 적용하려한다면?
startActivityForResult 메소드를 사용하자.
[Activity A 예제 코드]
val intent = Intent(this@StoreInfoUpdate, BusinessHourPick::class.java)
startActivityForResult(intent, 2000)
// Activity A (기존 액티비티)는 onActivityResult Override를 반드시 해야한다.
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == REQUEST_CODE_BUSINESS_TIME) {
if (resultCode == 200) {
// Activity B로부터 받아온 data를 삽입
store_business_hours_text.text = data?.getStringExtra("UPDATED_BUSINESS_TIME")
}
if (resultCode == 400) {
// nothing to do (failed to update business Time)
}
}
}
[Reference]
https://stackoverflow.com/questions/14292398/how-to-pass-data-from-2nd-activity-to-1st-activity-when-pressed-back-android
'Android' 카테고리의 다른 글
Android release Alpha vs Beta (0) | 2020.12.09 |
---|---|
[Android] ScrollView with ConstraintLayout (0) | 2020.07.07 |
[Android] SharedPreference (0) | 2020.07.03 |
[Android] instance (0) | 2020.07.03 |
[Android] Service 2편 (Foreground) (0) | 2020.06.22 |