하루플스토리
Home
  • 전체보기 (253)
    • 개발 (104)
      • Android (68)
      • IOS (1)
      • 코딩테스트 (34)
      • 딥러닝 (1)
    • 블로그 (9)
      • 공지사항 (4)
      • 이슈, 유머 (5)
    • 일상 (17)
      • 일상 (9)
      • 전자제품 (7)
      • 사진 (1)
    • 메이플 (120)
      • 메이플스토리 (120)
Home
  • 전체보기 (253)
    • 개발 (104)
      • Android (68)
      • IOS (1)
      • 코딩테스트 (34)
      • 딥러닝 (1)
    • 블로그 (9)
      • 공지사항 (4)
      • 이슈, 유머 (5)
    • 일상 (17)
      • 일상 (9)
      • 전자제품 (7)
      • 사진 (1)
    • 메이플 (120)
      • 메이플스토리 (120)
블로그 내 검색
Github

하루플스토리

안드로이드 개발자 하루플 입니다 GitHub 놀러와주세요!😊

  • 개발/Android

    [Kotlin] 안드로이드스튜디오 다양한 형식의 자료형 Intent 활용 방법

    2023. 4. 6.

    by. 하루플스토리

    안녕하세요, 하루플입니다.

     

    여러 클래스간 데이터 공유는 Application을 활용하거나 ViewModel을 활용하는 등 여러가지 방법이 있습니다.

    일반적으로 Activity에서 Activity 혹은 Fragment간 데이터 전송을 위해 Intent를 사용합니다.

     

    흔히 사용하는 기본적인 자료형인 String, Boolean, Int 등은 Intent를 활용해서 다른 클래스로 쉽게 데이터를 전송할 수 있습니다.

    일반 자료형 전송 방법

    val intent = Intent(this, OtherClass::class.java)
    intent.putExtra("NUMBER_KEY", number)
    startActivity(intent)

    데이터를 전송할 클래스에 putExtra 로 데이터를 넣어줍니다.

    흔히 사용하는 일반적인 자료형은 대부분 putExtra로 작동이 가능합니다.

    val number = intent.getIntExtra("NUMBER_KEY", 0)

    데이터를 전송 받을 클래스에서 위와 같이 전달 받습니다.

     

     

    List 데이터 전송 방법

    아래는 StringList를 전송하는 방법입니다.

    val categoryList = listOf("apple", "banana", "orange")
    
    val intent = Intent(this, OtherActivity::class.java)
    intent.putStringArrayListExtra("CATEGORY_LIST", ArrayList(categoryList))
    startActivity(intent)

    전송할 클래스에서 "CATEGORY_LIST"를 Key로 사용합니다.

    StringList를 전송할 때는 putStringArrayListExtra 를 사용합니다.

     

    val categoryList = intent.getStringArrayListExtra("CATEGORY_LIST")

    데이터를 전송 받는 클래스에서는 위와 같이 getStringArrayListExtra 사용하면 됩니다.

     

     

    데이터 클래스 전송 방법

    data class LoginData(
        val LoginID: String,
        val LoginPW: String
    ) : Serializable

    먼저 data class에 Serializable을 상속받습니다.

    val intent = Intent(this, OtherActivity::class.java)
    intent.putExtra("MY_DATA_CLASS_KEY", myDataClass)
    startActivity(intent)

    마찬가지로 putExtra 를 사용하고 dataClass를 넣어줍니다.

    val loginData = intent.getSerializableExtra("MY_DATA_CLASS_KEY") as LoginData

    데이터를 전송받을 클래스에서 getSerializableExtra를 사용해서 입력받습니다.

    저작자표시 비영리 동일조건 (새창열림)

    '개발 > Android' 카테고리의 다른 글

    [이펙티브 코틀린] 추상화 설계  (0) 2023.04.11
    [이펙티브 코틀린] 일반적인 프로퍼티 패턴은 프로퍼티 위임으로 만들어라  (0) 2023.04.10
    [Android] 이펙티브 코틀린 3장 재사용성  (0) 2023.03.20
    [Kotlin] 안드로이드스튜디오 뷰 사이즈를 조절하는 애니메이션  (0) 2023.03.14
    [Kotlin] 안드로이드스튜디오 RecyclerView 스크롤시 데이터가 섞이는 문제 해결방법  (0) 2023.03.07

    댓글

    관련글

    • [이펙티브 코틀린] 추상화 설계 2023.04.11
    • [이펙티브 코틀린] 일반적인 프로퍼티 패턴은 프로퍼티 위임으로 만들어라 2023.04.10
    • [Android] 이펙티브 코틀린 3장 재사용성 2023.03.20
    • [Kotlin] 안드로이드스튜디오 뷰 사이즈를 조절하는 애니메이션 2023.03.14
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Powered by ⓒ Kakao Corp.

Designed by Nana
블로그 이미지
하루플스토리

티스토리툴바