Android

    [Android] [Kotlin] Room 데이터베이스

    [Android] [Kotlin] Room 데이터베이스

    Room 데이터베이스란? ✔ 복잡한 쿼리를 잘 몰라도 SQLite를 코드 관점에서 접근할 수 있는 ORM 라이브러리 Room 추가하기 build.gradle Room 버전 https://developer.android.com/jetpack/androidx/releases/room Room | Android 개발자 | Android Developers Room Room 지속성 라이브러리는 SQLite에 추상화 레이어를 제공하여 SQLite를 완벽히 활용하면서 더 견고한 데이터베이스 액세스를 가능하게 합니다. 최근 업데이트 현재 안정화 버전 다음 버전 후보 developer.android.com RoomMemo 클래스 정의하기 RoomMemo.kt ✔ 데이터베이스의 테이블과 속성 값을 지정해주기 위한 클래스..

    [Android] [Kotlin] SharedPreferences

    [Android] [Kotlin] SharedPreferences

    SharedPreferences 사용해서 데이터 저장하기 저장하는 네 가지 과정 ✔ 1단계 : SharedPreference 생성하기 val shared = getSharedPreferences("databaseName", Context.MODE_PRIVATE) ◽ getSharedPreferences()는 Context를 가지고 있는 모든 컴포넌트에서 접근과 호출이 가능하다. ◽ 첫 번째 파라미터 : 입력된 데이터가 저장될 파일명 ◽ 두 번째 파라미터 : 파일 접근 권한, MODE_PRIVATE만 사용한다. ✔ 2단계 : Editor 꺼내기 val editor = shared.edit() ◽ 데이터를 저장하기 위해서는 Editor 인터페이스를 사용해야 한다. ◽ Editor 인터페이스는 edit 메서드..

    [Android] [Kotlin] Dialog로 액티비티 띄우기

    [Android] [Kotlin] Dialog로 액티비티 띄우기

    UI 전체 코드 MainActivity.kt 더보기 class MainActivity : AppCompatActivity() { val binding by lazy { ActivityMainBinding.inflate(layoutInflater) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(binding.root) } fun onClick(v: View) { when(v.id) { R.id.button -> { val intent = Intent(this, DialogActivity::class.java) intent.addFlags(Intent.FLAG_ACTI..

    [Android] [Kotlin] SQLite

    [Android] [Kotlin] SQLite

    전체 코드 MainActivity.kt 더보기 class MainActivity : AppCompatActivity() { val binding by lazy { ActivityMainBinding.inflate(layoutInflater) } val helper = SqliteHelper(this, "memo", 1) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(binding.root) val adapter = RecyclerAdapter() adapter.helper = helper adapter.listData.addAll(helper.selectMemo()) ..

    [Android] [Kotlin] ViewPager (뷰페이저)

    [Android] [Kotlin] ViewPager (뷰페이저)

    ViewPager2 + Fragment + TabLayout ✔ 각각 화면들이 독립적으로 구성될 필요가 있을 때 Fragment 사용 UI 전체 코드 MainActivity.kt 더보기 더보기 class MainActivity : AppCompatActivity() { val binding by lazy { ActivityMainBinding.inflate(layoutInflater) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) supportRequestWindowFeature(Window.FEATURE_NO_TITLE) setContentView(binding.root) val fragm..

    [Android] [Kotlin] chooser Intent (카메라, 갤러리)

    기능 설명 ✔ 카메라를 찍거나 갤러리에서 사진을 불러와서 선택한 사진을 이미지뷰로 띄워주는 코드 UI 전체 코드 AndroidManifest.xml 더보기 1 2 3 4 5 6 7 8 9 10 11 { if (!allPermissionsGranted()) { ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE), PERMISSION_CODE) } chooserIntent() } } } private fun chooserIntent() { // 갤러리에서 불러오기 Intent val galleryIntent = Intent(Intent.ACTION_..

    [Android] [Kotlin] 인텐트

    [Android] [Kotlin] 인텐트

    액티비티 테스크 관리하기 매니페스트에서 설정하기 launchMode ✔ 호출할 액티비티를 새로 생성할 것인지 재사용할 것인지 결정 ✔ 기본값은 새로 생성하도록 설정되어 있음 ✔ standard, singleTop, singleTask, singleInstance taskAffinity ✔ affinity가 동일한 테스크는 같은 task에 들어간다. ✔ 기본값이 manifest에 정의된 패키지명이므로 한 앱의 모든 액티비티들은 동일한 affinity를 갖는다. allowTaskReparenting ✔ true로 설정할 경우, 호출한 액티비티를 동일한 affinity를 가진 테스크에 쌓이도록 한다. ✔ 기본값은 false이다. clearTaskOnLaunch ✔ true로 설정할 경우, 액티비티가 재실행될 ..

    [Android] [Kotlin] 생명주기

    [Android] [Kotlin] 생명주기

    액티비티의 생명주기 액티비티의 생명 주기 메서드 onCreate() ✔ 액티비티가 만들어질 때 호출 onStart() ✔ 액티비티가 화면에 나타날 때 호출. 화면에 보이기 시작한다. onResume() ✔ 액티비티가 화면에 나타날 때 호출. 실제 액티비티가 실행되고 있는 중이다. onPause() ✔ 액티비티의 화면이 가려질 때 호출. 액티비티의 화면의 일부가 다른 액티비티에 의해 가려진다. onStop() ✔ 액티비티의 화면이 없어질 때 호출. 다른 액티비티가 실행돼서 화면이 완전히 가려질 때 호출된다. onDestroy() ✔ 액티비티가 종료될 때 호출 생명주기 콜백 액티비티를 생성해서 화면에 나타내는 상황 ◽ 액티비티는 onCreate() 메서드로 생성된 다음 화면 구성 요소를 메모리에 로드하고, ..

    [Android] [Kotlin] 프래그먼트 사용 방법 및 구조

    사용 용도 ✔ 변화하는 여러 화면을 표현할 때, 액티비티를 계속 띄우는 것 보다는 같은 크기의 화면이라면 프래그먼트로 전환시키는 것이 더 효율적인 구조 설계이다. ✔ 변하지 않는 한 화면을 layout에서 프래그먼트로 표현할 때는 를 사용하지만, 이벤트에 의해서 같은 크기의 layout에 여러 화면이 전환되는 경우에는 에 여러 프래그먼트를 표현하는 방법이 효율적이다. 액티비티에서 프래그먼트 전환하기 액티비티에서 프래그먼트로 값 전달하면서 프래그먼트 전환하기 ✔ 프래그먼트는 액티비티에서 관리해주기 때문에 프래그먼트 전환에 관련한 코드는 액티비티에 구현하는 것이 효율적이다. ✔ activity_main.xml 내에 있는 에 FirstFragment를 띄워주기 위한 코드이다. ✔ 또한, 액티비티에서 프래그먼트..

    [Android] [Kotlin] 리사이클러뷰

    전체 코드 MainActivity 더보기 class MainActivity : AppCompatActivity() { val binding by lazy { ActivityMainBinding.inflate(layoutInflater) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(binding.root) val data: MutableList = loadData() var adapter = CustomAdapter() adapter.listData = data binding.recyclerView.adapter = adapter binding.recyclerVie..