Olive Study Room
[Android Studio] persistentState: PersistableBundle 본문
recyclerView를 만들어보다가
처음에 생성되는 MainActivity에서는 실행이 되는데 SubActivity를 첫 엑티비티로 하면 보여지지 않는 이슈가 났다.
아래 두 코드의 주요 코드는 같다.
MainActivity
package fastcampus.part2.recyclerviewpractice
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.LinearLayout
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val recyView: RecyclerView = findViewById(R.id.recyclerView)
recyView.layoutManager = LinearLayoutManager(this)
// view.adapter
recyView.adapter = CustomAdapter()
}
}
SubActivity
package fastcampus.part2.calendarprac
import android.os.Bundle
import android.os.PersistableBundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
class RecyclerActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState, persistentState)
setContentView(R.layout.recylerview_main)
val view: RecyclerView = findViewById(R.id.recyclerView)
view.layoutManager = LinearLayoutManager(this)
// view.adapter
view.adapter = RvAdapter()
}
}
차이는 persistableBundle.
찾아보니 persistableBundle은 원래 디바이스를 재부팅했을 때 상태를 복원하는데 쓰기 때문에,
이걸 사용하는 onCreate()는 보통 Activity가 시작하는 동안 호출되지 않는다.
그렇기 때문에 setContentView()가 호출되지 않는다.
이거 때문에 프로젝트를 세 번 다시 만들었는데..^^ 즐겁다.
'Coding > Android' 카테고리의 다른 글
[Android Studio] RecyclerView (0) | 2021.07.21 |
---|---|
[Android Studio] Fragment, ViewPager2 (0) | 2021.07.20 |
[Android Studio] 레이아웃 (0) | 2021.07.10 |
[Android Studio] 설치, AVD(Android Virtual Device) 세팅, 환경 설명 (0) | 2021.07.09 |
[Kotlin] 기본 문법 & 필요 지식 (0) | 2021.07.07 |
Comments