방명록
- 안드로이드 프로그래밍 - 인텐트(Intent)와 Finish2023년 10월 15일 23시 12분 39초에 업로드 된 글입니다.작성자: Moonsu99
환경
- OS - Mac OS 13.5.2
- Tools - Android Studio Iguana | 2023.2.1 Canary 5
- Language - Kotlin
- android version - 12
- tartgetSDK - 33
- minSDK - 28
요약
안드로이드 스튜디오에서 앱 개발 시 여러 페이지를 작성해서 페이지를 넘겨야하는 경우가 종종 존재한다.
이를 해결하기 위해 Intent기능을 사용해 페이지를 넘기는 기능을 설명할 것이다.
해결방안
1. acitity_main.xml에 Intent기능을 수행할 버튼을 하나 생성한다.
2. 생성한 버튼에 id값을 부여한다.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@color/white" android:gravity="center" tools:context=".MainActivity"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="여긴 메인페이지 입니다." android:gravity="center" android:textColor="@color/black" android:layout_marginBottom="20dp" android:textSize="20sp"/> <Button android:id="@+id/btn_GoIntent" android:layout_width="match_parent" android:layout_height="wrap_content" android:backgroundTint="#FFFF00" android:textColor="@color/black" android:text="페이지 이동( 1 -> 2 )"/> </LinearLayout>
3. 새로운 액티비티를 생성한다.(res - layout - new - activity- empty views activity 선택한 다음 이름 작성하고 생성)
4. 해당 액티비티에도 다음 페이지로 이동할 버튼을 생성한다.
activity_intent.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" android:background="@color/black" tools:context=".IntentActivity"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="여긴 인텐트된 두번 째 입니다." android:gravity="center" android:textColor="@color/white" android:layout_marginBottom="20dp" android:textSize="20sp"/> <Button android:id="@+id/btn_GoFinish" android:layout_width="match_parent" android:backgroundTint="#33FFFF" android:layout_height="wrap_content" android:textColor="@color/black" android:text="Finish 페이지로 이동"/> </LinearLayout>
5. 액티비티를 하나 더 생성하여 finish기능을 수행할 버튼을 생성한다.
activity_finish.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:background="#0099FF" android:orientation="vertical" tools:context=".FinishActivity"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="여긴 마지막 페이지 입니다." android:gravity="center" android:textColor="@color/white" android:layout_marginBottom="20dp" android:textSize="20sp"/> <Button android:id="@+id/btn_Finish" android:layout_width="match_parent" android:backgroundTint="#FF99CC" android:layout_height="wrap_content" android:textColor="@color/black" android:text="Finish"/> </LinearLayout>
MainActivity.kt
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val goIntent: Button // 버튼 선언 goIntent = findViewById(R.id.btn_GoIntent) // id 값 찾아서 연결 goIntent.setOnClickListener { val intent = Intent(this, IntentActivity::class.java) // this는 현재 activity, IntentActivity는 이동할 페이지 startActivity(intent) } } }
IntentActivity.kt
class IntentActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_intent) val goFinish: Button goFinish = findViewById(R.id.btn_GoFinish) goFinish.setOnClickListener { val intent = Intent(this,FinishActivity::class.java) startActivity(intent) finish()//추가 } } }
여기서 finish( )기능을 추가하지 않는다면 마지막 페이지에서 finish버튼을 클릭했을 때 첫번째 페이지로 이동하는 것이 아닌 activity_intent로 이동한다.
FinishActivity.kt
class FinishActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_finish) val btnFinish: Button btnFinish = findViewById(R.id.btn_Finish) btnFinish.setOnClickListener { finish() // 클릭 시 finish기능 수행 } } }
해당 코드들을 올바르게 작성한다면 다음과 같은 결과를 기대할 수 있다.
여기서 마지막페이지에 있는 Finish버튼을 클릭 한다면 메인페이지로 이동하는 것을 확인할 수 있자. 직접 코드를 작성해서 확인해보자.
'Android [ Java, Kotlin ]' 카테고리의 다른 글
안드로이드 Retrofit2 통신 시 HTTPS가 아닌 HTTP로 설정하기 (0) 2023.10.19 안드로이드 프로그래밍 - 커스텀 프로그래스바(Progressbar) (0) 2023.10.16 안드로이드 프로그래밍 - 타이틀바(Action bar) 제거 방안 (1) 2023.10.15 안드로이드 프로그래밍 - 버튼 색상 변경 (0) 2023.10.15 안드로이드 상태바(StatusBar) 설정 (0) 2023.10.14 다음글이 없습니다.이전글이 없습니다.댓글