728x90
안드로이드의 4대 구성요소는 모두 AndroidManifest.xml 파일에 기록되어야 한다.
이 때 다른 애플리케이션이 실행할 수 있도록 하고자 한다면 Intent filter를 이용해 이름을 설정해주면 된다.
애플리케이션이 단말기에 설치되면 안드로이드 OS는 지정된 IntentFilter의 이름을 확인하여 정리하고 실행 요청을 받으면 이를 실행할 수 있다.
보조앱 생성
package com.example.activityapp2
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_second.*
class SecondActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second)
val data1 = intent.getIntExtra("data1",0)
val data2 = intent.getStringExtra("data2")
textView.text = "data1 : $data1\n"
textView.append("data2 : ${data2}")
button.setOnClickListener {
val result_intent = Intent()
result_intent.putExtra("value1",200)
result_intent.putExtra("value2","문자열2")
setResult(RESULT_OK,result_intent)
finish()
}
}
}
intent-filter 적용 (android:exported="true" 해줘야한다)
메인 앱
package com.example.otheractivity
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
val TEST_ACTIVITY = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener {
val test_intent = Intent("kr.co.softcampus.test_activity")
test_intent.putExtra("data1",100)
test_intent.putExtra("data2","문자열1")
startActivityForResult(test_intent,TEST_ACTIVITY)
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == TEST_ACTIVITY) {
if (resultCode == RESULT_OK) {
val value1 = data?.getIntExtra("value1",0)
val value2 = data?.getStringExtra("value2")
textView.text = "value1 : $value1\n"
textView.append("value2 : ${value2}")
}
}
}
}
728x90
'안드로이드 > Activity' 카테고리의 다른 글
인텐트 (명시적, 암시적) # ActivityResultContracts (0) | 2022.10.03 |
---|---|
안드로이드 Activity Action (0) | 2022.06.09 |
안드로이드 객체 전달 (0) | 2022.06.09 |
안드로이드 activity 데이터 전달 (0) | 2022.06.09 |
안드로이드 OnActivityResult (0) | 2022.06.09 |