반응형

Kotlin 50

[Kotlin] FrameLayout을 이용하여 겹치게 배치하는 방법

최근에 View의 배치를 하는데, 아래와 같은 부분이 있었습니다. 왼쪽에 보이는 "테"라는 TextView와 "30일"일 이라는 TextView가 겹쳐져야 하는데 이를 위해서 어떻게 할 수 있을까요? 답은 FrameLayout에 있습니다. ※ 처음 아이콘 처럼 되기 위해서는 style이나 background 등을 조정하여 맞춰주어야겠지만, 겹쳐보이기 위한 최소한의 위치 조정을 위와 같이 적용하면 되기 때문에 적용하지 않았습니다. 속성 내용 layout_width 해당 View의 너비 (match_parent인 경우 부모 View인 FrameLayout 너비 만큼 지정) layout_height 해당 View의 높이 (match_parent인 경우 부모 View인 FrameLayout 높이 만큼 지정) t..

[Kotlin] TextView와 EditText에 텍스트를 입력하는 방법

0. 미리보기 // TextView findViewById(R.id.tvTitle).text = "안녕하세요" // EditText findViewById(R.id.etTitle).setText("안녕하세요") 1. TextView TextView에서는 조회한 뷰 클래스에 text 값을 입력해주면 됩니다. findViewById(R.id.tvTitle).text = "안녕하세요" 2. EditText EditText의 경우 TextView 처럼 텍스트를 입력하면 아래와 같은 오류가 발생합니다. EditText에서 text는 Editable이 입력되어야 하기 때문인데, 이 경우 당황하지 말고 그냥 setText를 써주면 해결됩니다. findViewById(R.id.etTitle).setText("안녕하세요..

[Kotlin] "ContentValues"에 Null값 입력 방법 (putNull)

SQLite에서 데이터 입력시에 ContentValues가 필요합니다. val dbHelper:DBHelper = DBHelper(context, "DB명", null, 1) val database:SQLiteDatabase = dbHelper.writableDatabase val contentValues = ContentValues() contentValues.put("title", "[Kotlin] ContentValues putNull") contentValues.put("contents", "글 메모입니다.") database.insert("테이블명", null, contentValues) 위는 기본적으로 테이블에 insert하는 로직입니다. 이를 수행하면, title / memo가 "테이블명"이..

[Kotlin] Depreciated된 "registerForActivityResult" 해결 방법

오랜만에 안드로이드 개발을 하려고 보니, startActivityForResult가 Deprecated가 되었습니다. 그러면 어떻게 동일한 결과를 받아 와야 할까 하고 찾아보니 registerForActivityResult를 선언하여 사용하는 방법입니다. 1. Callback 변수 생성 // Callback 변수 private val callback = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> when (result.resultCode) { RESULT_OK -> { // TODO } } } registerForActivityResult로 callback 변수를 생성해줍니다. 2. Acti..

[Kotlin] String 배열을 한 개의 String으로 만드는 방법

1. 기본 문법 문자열 또는 숫자형 배열을 사용하다 보면 join을 해야 하는 경우가 많습니다. fun Sequence.joinToString( separator: CharSequence = ", ", prefix: CharSequence = "", postfix: CharSequence = "", limit: Int = -1, truncated: CharSequence = "...", transform: ((T) -> CharSequence)? = null ): String 속성 내용 separator 각 항목을 잇는 구분자 (기본값, 콤마(,)) prefix 첫 항목 앞에 입력 될 문자 postfix 마지막 항목 뒤에 입력 될 문자 limit 최대 출력 될 항목 개수 truncated 최대 표현될 항..

[Kotlin] "Floating Action Button" 사용하는 방법

1. Floating Button이란? 앱에서 흔히 보이는 화면 위에 둥둥 떠있는 버튼을 보곤 합니다. 앱 위에 둥둥 떠있어서 그런지 Floating Button이라고 하기도 하는데, 이는 Material Design을 이용해서 쉽게 지정해 줄 수 있습니다. 2. build.gradle (app) 설정 ... dependencies { ... implementation 'com.google.android.material:material:' ... } material을 연결해 줍니다. 3. layout xml에 호출 ... 여기서 주의할 부분이 xmlns에서 정의한 app 부분입니다. 기본적으로 생성 시에 아래와 같이 정의되어있다 보니, 그냥 FloatingActionButton 속성에 app 속성을 넣으..

[Kotlin] "For Loop"를 사용하는 방법

// 기본 문법 #1 for (i in 1..n) { // TODO } // 기본 문법 #2 for (item in list) { // TODO } 1. 기본 문법 #1 특정 숫자까지의 반복문을 사용하고 싶은 경우 아래와 같이 사용 가능합니다. 만약 2000년부터 2023년까지의 연도를 출력하고 싶은 경우 for (year in 2000..2023) { Log.d("TAG", "this year is $year") } 위와 같이 2000년부터 2023년까지 출력됨을 확인할 수 있습니다. 만약 역순으로 출력하고 싶다면 아래와 같이 출력 가능합니다. for (year in 2023 downTo 2000) { Log.d("TAG", "this year is $year") } 또한, 2년 단위로 출력하고 싶은 ..

[Kotlin] 배열에서 자주 사용 되는 함수

1. 함수 메서드 내용 first() 목록의 첫 번째 항목 last() 목록의 마지막 항목 indexOf(항목) 항목을 포함하는 인덱스 위치 (0부터 시작, 없으면 -1) count() 목록 내 항목의 개수 contains(항목) 해당 항목이 목록 내에 포함되어있는지 여부 (true:있음 / false:없음) joinToString() 목록을 구분자(def. 콤마(,))로 묶어줌 reserve() 목록 내 항목을 역순으로 정렬 average() 목록 내 항목 들의 평균 값 sum() 목록 내 항목 들의 합계 min() 목록 내 최소값 항목 max() 목록 내 최대값 항목 val array = arrayListOf("서울", "경기", "강원", "충북", "충남", "전북", "전남", "경북", "경..

[Kotlin] "Ringtone" 사용하는 방법

1. Ringtone 객체 생성 class RingtoneActivity : AppCompatActivity() { private var ringtone : Ringtone? = null ... } Ringtone에 사용될 객체를 선언합니다. 2. Ringtone 실행 /** * @description 벨소리 시작 * @param context 컨텍스트 * @param packageName 패키지 명 (ex. com.test.app) * @param path 벨소리 경로 (test.mp3) */ fun startRingtone(context:Context, packageName:String, path:String){ // 사전에 선언된 벨소리가 있는 경우 중지 if(ringtone != null) rin..

[Kotlin] 배열 정렬 방법

객체에 담긴 목록의 경우 정렬이 필요한 경우가 많습니다. 이 경우, 아래와 같이 오름차순과 내림차순으로 정렬 가능합니다. 메서드 내용 sortBy 특정항목 기준으로 내림차순 정렬합니다. sortByDescending 특정항목 기준으로 오름차순 정렬합니다. 1. 객체 생성 data class Product ( val name : String, val price : Int ) 상품명과 가격 정보를 갖는 데이터 모델 객체를 생성합니다. 2. 테스트 데이터 생성 val array = ArrayList() array.add(Product("새우깡", 1000)) array.add(Product("초코칩쿠키", 1200)) array.add(Product("꼬북칩", 1500)) array.add(Product("..

반응형