본문 바로가기

728x90
반응형
SMALL

Android

(80)
by viewModels() 사용하는 법, by viewModels() 종속성 추가 by viewModels()를 사용하면 ViewModelProvider를 사용하지 않고 viewmodel을 지연 생성할 수 있습니다. private lateinit var viewModel: MyViewModel ... viewModel = ViewModelProvider(this).get(MyViewModel::class.java) 위의 코드를 아래 한줄로 사용할 수 있습니다. private val viewModel: MyViewModel by viewModels() by viewModels() 사용하여 ViewModel 생성하기 gradle에 필요한 종속성을 추가해 주어야 합니다. *ViewModel 종속성은 당연히 필요하여 적지 않았음. android { kotlinOptions { jvmTarge..
[안드로이드] application context 어디서나 쉽게 가져오기 ― companion object에서 context 사용 Manifest 추가 android:name=".MyApplication" application에 위의 코드를 추가합니다. ... MyApplication class Java MyApplication.java public class MyApplication extends Application { private static Context context; public void onCreate() { super.onCreate(); MyApplication.context = getApplicationContext(); } public static Context ApplicationContext(){ return MyApplication.context; } } Kotlin MyApplication.kt clas..
Kotlin 문법 (2) 데이터 클래스(Data class) 사용하기 Data Class Kotlin은 기존의 Java Data class보다 손쉽게 Data class를 정의할 수 있습니다. public class User{ String name; int age; @Override public String toString(){ return ".. ..."; } public String getNaume(){ return name; } public void setName(String name){ this.name = name; } } Java에서는 위처럼 toString, equals, setter,getter 메서드를 직접 구현해야합니다. 하지만 코틀린에서는 밑의 한줄의 코드로 Data class를 정의할 수 있고, equals()/hashCode(), toString()..
Kotlin 문법 (1) 변수/함수 선언하기, Nullable/Non-Null 변수 var 일반 변수 val 읽기만 가능한 final 변수 val 변수는 읽기만 가능하여 오직 한번만 값이 할당될 수 있습니다. val a: Int = 1 // immediate assignment val b = 2 // `Int` type is inferred val c: Int // Type required when no initializer is provided c = 3 // deferred assignment 데이터 타입을 정하지 않고 정의할 수도 있습니다. 데이터 타입이 자동으로 정해집니다. var x = 5 // `Int` type is inferred x += 1 Nullable/Non-Null 또한 리턴타입이나 변수가 Nullable 인지, Non-Null인지도 구별할 수 있습니다. 위..
[안드로이드] 둥근 테두리 Custom Dialog(커스텀 다이얼로그) 만들기 dialog_background_round.xml 둥근 round 모양 테두리 custom dialog를 만들기 위한 background layout custom_dialog.xml CustomDialog.java public class CustomDialog extends Dialog { private EditText et_text; private Context mContext; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.custom_dialog); // 다이얼로그의 배경을 투명으로 만든다. Objects.requireNonNu..
Kotlin 시작하기 ― 설정, Basic 문법 Kotlin을 시작해봅시다! Kotlin을 시작하는 방법엔 두가지가 있는데요. 기존의 자바 프로젝트일 경우 gradle파일 수정 코틀린 프로젝트 시작 자바 프로젝트일 경우, gradle파일에 kotlin을 추가해줍시다. build.gradle(Project: ...) // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.kotlin_version = '1.3.61' //추가 repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.6.3'..
[안드로이드] 뒤로(Back) 버튼 클릭 시 프래그먼트(Fragment) / 앱 종료 하기 ― onBackPressedListener 뒤로 버튼을 눌렀을 때, 프래그먼트 라면 실행중인 프래그먼트를 종료하고, 메인 액티비티라면 뒤로버튼을 두번 눌러 어플을 종료해 보겠습니다. onBackPressedListener.java public interface onBackPressedListener { void onBackPressed(); } 먼저, onBackPressedListener 인터페이스를 만들어 줍니다. MainActivity.java private long lastTimeBackPressed; ... @Override public void onBackPressed() { //프래그먼트 onBackPressedListener사용 List fragmentList = getSupportFragmentManager().getFragmen..
[Java/Kotlin] Dynamic Recycler View 구현 & Local Database에 데이터 저장(Room) & LiveData 사용하기. 안녕하세요. 이번 포스트는 아주 유용한 예제일것 같은데요^^ 동적으로 삭제, 추가 가능한 리사이클러 뷰를 구현하면서 리사이클러 뷰의 데이터들이 앱 내 저장 될 수 있는 기능은 거의 필수적이겠죠. 이번 포스팅에서는 동적으로 삭제/추가/편집 가능한 리사이클러 뷰 구현 Room을 사용하여 로컬 데이터 베이스에 데이터 저장 LiveData를 사용하여 DB 데이터 변화 감지하여 UI업데이트 를 한큐에! 해결하는 아주 유용한 예제가 되겠습니다. 동적으로 삭제/추가/편집하는 리사이클러 뷰에 Room과 LiveData를 결합하게 되겠는데요. Room은 SQLite의 추상 레이어를 제공하여 SQLite의 기능을 모두 사용할 수 있고, DB로의 접근을 편하게 도와주는 라이브러리 입니다. SQLite를 직접쓰지않고 Room..

728x90
반응형
LIST