안드로이드 프로그래밍[Kotiln Code]/안드로이드 초기 강좌

[안드로이드] 액티비티 2 ( 데이터 전달시 요청코드 및 결과 리턴받기 )

훈츠 2020. 4. 17. 15:34
반응형

안녕하세요. 훈츠입니다. 금일은 액티비티를 통해 데이터를 전달하고 받는 방법에 관해 포스팅 합니다.


안드로이드 시스템 (Back Stack)

안드로이드 시스템안에 backStack 안에다가 아래와 같이 액티비티를 쌓습니다.

Intent.setFlag 를 통해 backStack 에 쌓는것을 계속 쌓지 않을 수도 있습니다.

 

 

  1. 액티비티 RequsetCode 담아서 startActivity 시작
  2. 새로 시작된 액티비티에서 data를 받는 방법
    1. getIntent 를 override 하여, get자료형Extra 를통해 값을 반환
    2. onActivitiyResult 를 override 하여, get자료형Extra 를통해 값을 반환
  3. Request 한 액티비티에서 값을 반환 받는 방법
    1. getIntent 를 override 하여, get자료형Extra 를통해 값을 반환
    2. onActivitiyResult 를 override 하여, get자료형Extra 를통해 값을 반환

코드 공유

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
 
class MainActivity : AppCompatActivity() {
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        bt_scr2.setOnClickListener{
            val requsetCode  = 1
            val intent = Intent(this, Main2Activity::class.java)
            intent.putExtra("main","메인에서 왔어요")
            startActivityForResult(intent , requsetCode)
        }
 
    }
 
    override fun onActivityResult(requestCode: Int, resultCode: Intdata: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if(requestCode == 1 && resultCode== Activity.RESULT_OK){
            textView.text = data?.getStringExtra("Message")
        }
    }
}
 
// MAIN 에서 온 Intent 받는 액티비티 
class Main2Activity : AppCompatActivity() {
    override fun getIntent(): Intent {
        return super.getIntent()
    }
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main2)
        val intent = getIntent()
        txtViewScr2.text = intent.getStringExtra("main")
 
        bt_scr2_finish.setOnClickListener{
            val intent = Intent()
            intent.putExtra("Message""MAIN2 로부터 다시 돌아왔습니다. ")
            setResult(Activity.RESULT_OK, intent)
            finish()
        }
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

 

 

 

반응형