0101011001010111

Android4-2_ Intent란? Intent의 객체 / 명시적 인텐트 Explicit Intent 연습해보기 본문

Kotlin/안드로이드_[입문]앱개발

Android4-2_ Intent란? Intent의 객체 / 명시적 인텐트 Explicit Intent 연습해보기

[진주] 2023. 8. 16. 08:23
728x90
반응형

3.51초-

Intent의 객체

Intent객체에는 안드로이드 시스템이 어떤 구성요소를 시작할지 판별하는데 필요한 정보가담겨있습니다.

 

1). 컴포넌트이름(ComponentName)

  • 인텐트를 처리하는 타켓 컴포넌트 이름
  • 선택 항목이므로, 컴포넌트 이름이 지정되지 않으면 암시적인 텐트를 의미함

 

2). 작업(Action)

  • 수행되어야 할 작업을 나타내는문자열

3). 데이터(Data)

  • 작업에 필요한 데이터

4). 카테고리(Category)

  • 작업에 대한 추가적인 정보 제공

5). 엑스트라(extra)

  • 요청한 작업을 수행하기 위해 필요한 추가정보를 담고있는 키- 값 쌍의 데이터

 


명시적 인텐트 Explicit Intent 로 다른 액티비티 시작하기

 

명시적 인텐트로 다른 액티비티를 시작시키기 위해서는 startAcitivity() 메소드를 호출하고,

시작하고자 하는 액티비티를 설명하는 Intent 객체를 전달하면 됩니다.

 

 

 


 

 

솔직히 읽어도 무슨 내용인지 모르겠다.

역시 이해는 실습이 최고 ! 

실습을 해보자.

 

저번에 만들어 둔 액티비티 3개 로 !

 

5.44초

FirstActivity에서 SecondActivity 시작 시키기 

이걸만들어볼거다.

 

두번째 액티비티 시작하기 누르면 두번째페이지로 감

닫기 -

일단 이건 쉽게 xml로 만들텐데 ,

 

그 다음이 중요하다 .

 

FirstActivity.kr

에서 

package com.example.activityintent

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class FirstActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_first)


        val btn = findViewById<>()
    }
}

버튼을 연결 시켜줘야하는데,

 

findVieById<>()

에서 <>안에는 속성이 들어간다. 이건 버튼이므로 Button 을 넣어주고 

val btn = findViewById<Button>(R.id.btn1)

그리고, 첫번째 페이지에서 만든 버튼의 아이디를 적어주는데,

나는 btn1이라는 이름을 지어줬다.

 

R. << R.은 접근하는걸 의미

id. <<id가 뭐냐면

btn1 << btn1이야.

 

btn.setOnClickListener {
    val intent = Intent(this, SecondActivity::class.java)
    startActivity(intent)

}

 

setOnClickListener

Android에서 뷰 (특히 버튼과 같은 대화형 위젯)에 클릭 이벤트를 처리하기 위해 사용하는 메서드입니다.

 

 

SecondActivity

package com.example.activityintent

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button

class SecondActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_second)

        val btn = findViewById<Button>(R.id.btn2)
        btn.setOnClickListener {
            finish()
        }

    }
}

 

실행화면

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형