Android/Kotlin
-
[Android/Kotlin] 스레드(Thread)Android/Kotlin 2022. 7. 3. 20:17
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 사용자 input 받는 스레드 - UI 변경시키는 스레드 - 절대로 정지시킬 수 없음(정지시키는 경우 앱 강제종료) - 1. val runnable: Runnable = object: Runnable{ override fun run() { } } val thread: Thread = Thread(runnable) thread.start() - 2. Thread(object: Runnable{ override fun run() { } }).start() - 3. runOnUiThread { } - UI 변경 가능한 스레드
-
[Android/Kotlin] ContextAndroid/Kotlin 2022. 7. 3. 19:23
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 역할 : ActivityManagerService((구글이)개발하기 편하도록 미리 구현 해놓은 기능)에 접근하도록 해줌 - 주변 정보 - this의 부모는 Context - 1. Context(activity의 context) - Activity의 주변 정보 val context: Context = this - 2. ApplicationContext(application의 context) - Application의 주변 정보 - Activity Context보다 더 포괄적인 정보 가지고 있음 val applicationContext = getApplicationContext()
-
[Android/Kotlin] values 파일 값 가져오기Android/Kotlin 2022. 7. 3. 19:22
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] val str1 = resources.getString(R.string.아이디) val str2 = getString(R.string.아이디) - resources를 사용할 수 있는 이유는 AppCompatActivity를 상속받았기 때문 - str2 : str1의 간단한 버전 val color = getColor(R.color.purple_200) - getColor는 비교적 최근에 만들어 졌으므로 SDK 23 버전 이상에서만 사용 가능 val color = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { getColor(R.color.purple_200) } else { resources.getCol..
-
[Android/Kotlin] lateinit과 lazyAndroid/Kotlin 2022. 7. 3. 19:03
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - init : 초기값 셋팅 - lateinit : 늦게(나중에) 초기값 셋팅 - 초기값이 셋팅되지 않았을 때 호출 되면 에러 발생 - primitive type(기본형 타입)에는 사용 불가(예외적으로 String에는 사용 가능) - 사용 권장x - lateinit로 선언된 변수 사용하는 경우 사용하기 전에 반드시 초기화 해야 함 - ::변수명.isinitialized - 1. var 변수에만 사용 가능 - 2. null로 초기화 불가능 - 3. 해당 변수에 대한 getter/setter 정의 및 사용 금지 - lateinit과 비슷하지만 val 변수에만 사용 가능함(변경 불가능)
-
[Android/Kotlin] NullSafetyAndroid/Kotlin 2022. 7. 3. 18:58
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 1. ? : Null이 아니라면 이하 구문 실행 - 2. !! : Null이 아님을 개발자가 보장 - Null인 경우 오류 발생 *Int, Double, Float, Class 타입은 Null이 될 수 없음(Null값 넣을 수 없음)* - ? 사용해야 함 val num1: Int? = null val num2 = num1 ?: 10 - num1이 null인 경우 num2에 10이 들어가고 아닌 경우 num1의 값이 들어감
-
[Android/Kotlin] 프래그먼트(Fragment)Android/Kotlin 2022. 7. 2. 21:43
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] val fragment_new: Fragment_new = Fragment_new() val fragmentManager: FragmentManager = supportFragmentManager val transaction:FragmentTransaction = fragmentManager.beginTransaction() transaction.replace(R.id.fragment1, fragment_new).commit() - replace(바꿀 프래그먼트 아이디, 바꿀 프래그먼트) - commit()과 commitNow()의 차이 - 간단히 말하면 commit()은 시스템이 시간 될 때 수행하라는 의미지만 commitNow()는 지금 당장 수행..
-
[Android/Kotlin] 인텐트(Intent)Android/Kotlin 2022. 7. 1. 21:05
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 액티비티와 액티비티 - 안드로이드 시스템과 앱 - ex) 전화 - 다른 앱과의 상호작용 - 상호합의 없이는 이루어 질 수x val intent = Intent(this@MainActivity, MainActivity2::class.java) startActivity(intent) - this@MainActivity와 this는 동일한 개념이므로 this를 넣어줘도 되지만 안드로이드 개발을 하다 보면 this만 넣으면 앱이 종료되는 경우가 있음(ex 다이얼로그) - this 뒤에 @액티비티명 붙이는 것을 습관화 하면 좋다고 함 - putExtra() 사용 val intent = Intent(this@MainActivity, MainActivity2:..
-
[Android/Kotlin] 리스너(Listener)Android/Kotlin 2022. 6. 27. 22:13
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] 1. 람다 방식 textView.setOnClickListener { } 2. 익명 함수 방식 textView.setOnClickListener(object : View.OnClickListener{ override fun onClick(p0: View?) { } }) 3. 이름이 필요한 경우(재사용 필요한 경우) val click = object : View.OnClickListener { override fun onClick(p0: View?) { } } textView.setOnClickListener(click) - click 내용 재사용 가능