본문 바로가기
반응형

Android90

[Kotlin] Fragment 사용하기 Fragment Android에서 Fragment는 UI 조각을 나타내는 컴포넌트로, 하나의 화면 내에서 재사용 가능한 UI 요소를 구성하는데 사용됩니다. Fragment는 Activity 내에 포함되어 독립적으로 존재하지만, Activity의 라이프사이클에 의존하여 동작합니다. Fragment를 사용하면 앱의 UI를 더 모듈화하고 재사용성을 높일 수 있음 여러 화면 크기와 디바이스에 대해 더 유연하게 대응 화면을 나누어 여러 작은 조각으로 구성하여 사용자 인터페이스를 관리 각 조각을 독립적으로 관리 Fragment의 라이프사이클은 Activity의 라이프사이클과 밀접한 관련이 있으며, 다양한 메소드를 사용하여 상태 변화를 감지하고 제어할 수 있습니다. Fragment의 주요 라이프사이클 메소드 onA.. 2023. 7. 28.
[Kotlin] Android 에서 Retrofit2 사용하여 API 호출하기 테스트 할 Empty Activity 를 생성합니다. (이제 생성 단계는 생략) 이름은 RestApiActivity 로 하고, Source Language 는 Kotlin class RestApiActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_rest_api) } } 기본적으로 이렇게 코드가 나오는데, 아래와 같이 ViewBinding 으로 변경합니다. class RestApiActivity : AppCompatActivity() { private lateinit var bindi.. 2023. 7. 25.
[Kotlin] apply, with, let, ?: 사용하기 아래와 같이 Person 이라는 class 가 있을 때, data class Car( var model: String? = null, var price: Int? = null, var brand: String? = null ) { override fun toString(): String { return "Car : [$model, $price, $brand]" } } 일반적으로 다음과 같이 초기화 합니다. var car1: Car? = Car() car1?.model = "x" car1?.price = 50000000 car1?.brand = "tesla" print(car1?.toString()) // Car : [x, 50000000, tesla] apply 다음과 같이 사용할 수 있습니다. val .. 2023. 7. 25.
[Kotlin] 리니어 레이아웃(LinearLayout) 예제 리니어 레이아웃은 수평 또는 수직 방향으로 정렬할 수 있는 레이아웃 입니다. 사용하기 쉬워서 간단한 레이아웃은 이것으로 다 만들 수 있습니다. 필수 속성 layouut_width : 가로 사이즈 layout_height : 세로 사이즈 orientation : 방향 (horizontal, vertical) Activity 만들기 - empty activity를 하나 생성합니다. 이름은 LinearTestActivity 기본적으로 생성되는 레이아웃이 ConstraintLayout 이므로, LinearLayout 으로 변경합니다. res/layout/activity_linear_test.xml > Component Tree > ConstraintLayout > Convert view... 클릭 아래와 같은 .. 2023. 7. 25.
[Kotlin] Android Java 와 Kotlin 몇가지 문법 비교 Java Integer.parseInt(someValue) Kotlin someValue.toInt() Java if ( "100".equals(someValue) ) { } Kotlin if( someValue == "100" ) { } Java Object someValue = new String("hello"); if ( someValue instanceof String ) { // OK } Kotlin var someValue: Any = "hello" if ( someValue is String ){ // OK } Java class MainActivity : AppCompatActivity() { Kotlin class MainActivity : AppCompatActivity() { Java.. 2023. 7. 24.
[Kotlin] class static 변수 사용하기 companion object Java 에서는 public static final .... 로 썼던게 kotlin 에서는 어떻게 사용쓰일지 JAVA // 선언 public class MainActivity { public static final int bonus = 100; } // 사용 MainActivity.bonus Kotlin // 선언 class MainActivity : AppCompatActivity() { companion object { const val bonus: Int = 100 } } // 사용 MainActivity.bonus 2023. 7. 24.
[Kotlin] 개발할때 알아야할 LifeCycle 자세한 내용은 공식 설명을 확인하시고, 여기에서는 간단하게. 어떨때 어떤 함수가 호출되는지 알아보겠습니다. 우선 Activity 를 하나 만들었습니다. package com.example.test01 import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import com.example.test01.databinding.ActivityLifeBinding class LifeActivity : AppCompatActivity() { val tag = "LifeActivity" lateinit var binding: ActivityLifeBinding override fun onCreate.. 2023. 7. 24.
[Kotlin] 새로운 화면(Activity) 추가하고 데이터 주고받기 MainActivity 가 있을 때, 버튼을 눌러서 또 다른 Activity를 띄워보고 데이터를 전달하고, 두번째 엑티비티에서 변경한 결과도 받아오는 예제를 해보겠습니다. 안드로이드 스튜디오에서 새 프로젝트를 만들고, EmptyActivity 를 선택 후 생성하면, 기존 화면(MainActivity)이 생성됩니다. 그리고 ViewBinding 으로 소스를 수정합니다. [Kotlin] findViewById 대신에 View binding 참고 새 화면(Activity) 생성 SecondActivity 를 만들어야겠죠. MainActivity 와 같은 Package에서 우클릭 > New > Activity > Empty Activity 생성되는 경로는 달라도 상관없습니다 Activity정보를 입력하고 생성합.. 2023. 7. 23.
[Kotlin] findViewById 대신에 View binding View Binding findViewById 대신에 XML 레이아웃 파일에 있는 ID를 직접 참조할 수 있습니다. 참고: 뷰 결합은 Android Studio 3.6 Canary 11 이상에서 사용할 수 있습니다. 1. build.gradle 에 viewBinding 설정 build.gradle (Module: YourApp.app) 의 파일을 열어서 android { } 부분에 아래 코드를 추가합니다. android { ...생략... viewBinding { enabled = true } } layout 파일의 내용이 다음과 같고, 이름은 activity_main.xml 이라고 했을 때 layout 파일명에 따라서 결합 클래스 이름이 결정됩니다. 지금은 activity_main.xml 이라서 Ac.. 2023. 7. 22.
[Kotlin] 코틀린 기본 문법 5 (배열 응용) 배열 정렬 listOf() / mutableListOf() val list = listOf(1, 5, 4, 6, 3, 2) val sorted = list.sorted().reversed() println("sorted : $sorted") // sorted : [6, 5, 4, 3, 2, 1] val list2 = mutableListOf(1, 5, 4, 6, 3, 2) list2.sort() list2.reverse() println("sorted : $list2") // sorted : [6, 5, 4, 3, 2, 1] sortedWith val list = listOf("kevin", "steve", "john", "mark", "jadon") val alphabetOrder = list.sort.. 2023. 7. 20.
728x90
반응형