일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 믹스커피추천
- 원스휴먼 쿠폰
- 원스휴먼 사료
- 원스휴먼 레시피
- 원스휴먼 황금양 구하기
- 홈플러스
- 원스휴먼 황금양털파밍
- 원스휴먼 스타크롬
- 홈플러스 시그니처 모카골드믹스커피
- 유광버섯 통조림
- 원스휴먼 동물
- 원달러환율
- 믹스커피
- 계엄령
- 원스휴먼 황금양
- 국방부
- 윤석열
- 시그니처
- 원스휴먼 요리
- 원스휴먼 먹이
- 1203계엄령
- 원스휴먼 레시피 파밍
- 계엄령 외신반응
- 레시피 파밍
- 커피추천
- 비상계엄령
- 2차계엄
- 일론머스크
- 2차 비상계엄
- Today
- Total
0101011001010111
Android 입문 (복습) intent 본문
이전 intent 글 :
https://vjinjoov.tistory.com/62
https://vjinjoov.tistory.com/63
https://vjinjoov.tistory.com/64
https://vjinjoov.tistory.com/65
https://vjinjoov.tistory.com/66
요즘 intent가 자꾸 정보를 넘겨주는 것?
이라고 혼동이 와서 헷갈렸다.
일단 정확한 개념은 다른 페이지로 정보를 넘겨주는 것만이 아니라 호출 개념이 강하다.
a - > b로 이동한다면,
a에서 b를 호출하는 것이 intent의 개념이다.
그것은 명시적 인텐트와 암시적 인텐트 2개로 나누어져 있는데,
명시적 인텐트는 정확히 페이지B! 라고 말하는 것이고
암시적 인텐트는 지도 관련 앱을 틀고 싶어~ 라고 하면 지도관련 앱을 찾아서 사용자가 선택하게 하는 기능이다.
그래서 앱을 만들고 출시할때 이 앱은 어떤 기능을 가진 앱이다 filter를 걸어두면
만약 지도관련된 앱을 연결할거야~
하면 구글지도, 네이버 지도등이
이미 filter로 "지도"라는 것으로 분류된다 라고 앱을 만들 때 설정해 놓았기 때문에
지도 앱 뭐킬래 ? 하고 묻는 선택 항목에 포함되게 된다.
인텐트에는 다른 페이지로 정보를 넘겨 주는 방법도 가능한데,
예를들어, 내가 이메일 온 것에 답장을 누르면
이메일 제목이 : 황진주님 안녕하세요
였다면 이 것에 대한 답장 을 누를경우
제목 : [re]황진주님 안녕하세요.
라고 그 전의 데이터를 받아와서 앞에 [re]를 붙이는 형식으로 정보가 넘겨지는 것이다. + 답장을 보낼 이메일 주소도 함께 넘어온다.
그럴 때, 데이터를 넘길 때 extra 값을 쓰게 된다.
먼저, 액티비티간의 이동을 할 수 있는 방법을 해보자.
First, Scond, Third 액티비티를 새로 만들고( 각각의 xml도 같이 생성해주자)
그리고 first에서 second로 연결해주는 연습을 해보자.
먼저 전에 해봤던 것이므로, 강의를 중지 시켜놓고 스스로 해보도록 하자.
내문제점 :
xml로 페이지는 다 만들었으나,
.kt 파일로 가서 무엇 부터 건드려야 할지 감이 잡히지 않음.
먼저, 변수를 지정해주고
val button = 레이아웃 xml의 버튼이다! 라고 지정해준 뒤,
클릭했을 때, onclick리스너? 같은걸로 페이지 2로 이동한다 라고 설정해 주면 될 것 같은 느낌인데
선명하게 순서가 머릿속에 잡히질 않으니 차근차근 해보도록하자.
android:id="@+id/firstbutton_gosecond"
▼ 레이아웃 버튼 이름은 위와 같은데..
어떻게 가져오지 ?
먼저 순서가 틀린 감이 있다.
앞으로 나는 뷰바인더를 사용 할 것이므로 뷰바인더 설정부터 해주어야한다.
순서 1 : 뷰바인더 설정하기!
https://vjinjoov.tistory.com/100
그리고 난 뒤, 뷰바인터를 통한 버튼의 변수를 설정해주자.
package com.example.test
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.example.test.databinding.ActivityFirstBinding
class FirstActivity : AppCompatActivity() {
private lateinit var binding: ActivityFirstBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityFirstBinding.inflate(layoutInflater)
setContentView(binding.root)
setContentView(R.layout.activity_first)
//뷰바인더를 설정했다면, 뷰바인더를 이용한 변수설정
val button = binding.firstbuttonGosecond
}
}
android:id="@+id/firstbutton_gosecond"
버튼의 xml 상 이름을 camelCase로 바꿔주면 된다.
그럼, 이제 이 버튼을 눌렀을 때!
세컨드 페이지로 간다고 설정을 해 줘야한다.
방법은 2가지가 있다.
먼저 바로 리스너를 설정하는 방법과, 변수를 설정하고 그것을 이어주는 방법이 있는데
먼저 버튼의 이름을 따로 .kt 에 설정해주지 않고
xml의 이름으로 바로 연결해주는 방법!
binding.firstbuttonGosecond.setOnClickListener {
val intent = Intent(this@FirstActivity, SecondActivity::class.java)
startActivity(intent)
}
val intent = Intent(this@FirstActivity, SecondActivity::class.java)
startActivity()는 그저 액티비티를 시작하는 것뿐만 아니라, 웹 브라우저를 열거나, 사진을 찍기 위한 카메라 앱을 시작하거나, 전화를 걸기 위한 다이얼러 앱을 시작하는 등의 작업도 수행할 수 있습니다. 이 모든 것은 Intent에 어떤 정보가 담겨 있느냐에 따라 결정됩니다.
+추가공부 ) @는 무엇일까 ?
https://vjinjoov.tistory.com/manage/posts/
'Kotlin > [스스로]Kotlin&안드로이드' 카테고리의 다른 글
Android - 암시적 인텐트로 다른 액티비티 실행하기 (0) | 2023.09.05 |
---|---|
4-2 인텐트 연결해보기 (0) | 2023.09.05 |
Android - [여기서 @는 뭘 뜻하는 걸까 ?] 예 : Intent(this@FirstActivity, SecondActivity::class.java) (0) | 2023.09.04 |
Android - inner Class (0) | 2023.09.04 |
입문 - 복습 / 액티비티 (0) | 2023.09.04 |