본문 바로가기

안드로이드 코틀린145

[Kotlin][Android] 안드로이드 연속 클릭 막기 안녕하세요. 종종 특정 뷰에 대한 연속 클릭을 일정시간 동안 막고 싶을 때가 있죠. (ex. 클릭 될 뷰에 한 번만 실행되어야 하는 로직이 연결되어 있거나 뷰를 클릭해서 새 창을 띄울때 실수로 두번 눌러도 하나만 띄우고 싶을때) 그 때 사용할 수 있는 코드에 대해 알아보겠습니다. 1. OnClickListener를 상속받은 클래스를 하나 만들어줍니다. import android.util.Log import android.view.View class OnSingleClickListener(private val clickListener: View.OnClickListener) : View.OnClickListener { companion object { const val CLICK_INTERVAL: Long.. 2022. 7. 22.
[Kotlin][Android] 파일 쓰고 불러오기 이번시간에는 텍스트 파일을 만들고 불러오겠습니다. 먼저 activity_main 레이아웃입니다. 다음으로는 MainActivity 입니다. package com.rai.LineProject import androidx.appcompat.app.AppCompatActivity import android.os.Bundle override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.layout); val textBox = findViewById(R.id.textbox) val btnSave = findViewById(R.id.btn_save) val btnLoad = f.. 2022. 7. 13.
[kotlin][Android] 안드로이드에서 긴 글 가져오기 안녕하세요. 오늘은 안드로이드에서 줄바꿈이 적용된 긴 글을 텍스트뷰에 위치시켜야 할 때 사용할 수 있는 방법에 대해 알아보겠습니다. 1. 필요한 텍스트 파일을 만들어서 assets 폴더에 넣어줍니다. * 만약 assets 폴더가 없다면 [app 우클릭] -> [New] -> [Forder] -> [Asset Folder]를 만드시면 됩니다. 2. 아래와 같은 메서드를 만들어줍니다. fun getAssetsTextString(mContext: Context, fileName: String): String{ val termsString = StringBuilder() val reader: BufferedReader try { reader = BufferedReader( InputStreamReader(mCo.. 2022. 7. 7.
[kotlin][Android] Activity 한번에 종료하기 이번 시간에는 activity를 여러개 쌓은 후, 마지막 것을 기준으로 한번에 종료하는 기능을 만들어보겠습니다. 해당 기능을 구현하는 방법은 여러가지가 있습니다. 하지만 그것들 중에서 ActivityResultLauncher 를 사용할 것 입니다. 원리는 간단합니다. launcher을 통해 activity를 실행시킨후, 던진 데이터가 finish이면 종료시킵니다. 이를 위해선 매 activity launcher가 필요하므로 BaseLauncherActivity를 만들어 상속해줍시다. open class BaseLauncherActivity : AppCompatActivity() { protected lateinit var launcher: ActivityResultLauncher override fun .. 2022. 6. 28.
[Kotlin][Android] BottomSheetDialogFragment 구현해보기 gradle implementation 'com.google.android.material:material:1.1.0' MainActivity class MainActivity : AppCompatActivity() { private lateinit var bottomSheetBtn: Button override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) bottomSheetBtn = findViewById(R.id.bottom_sheet_btn) val bottomSheetDialogFragment = TestBottomSheetDial.. 2022. 6. 22.
[Kotlin][Android] 디바이스 전체 화면 길이 구하기 안녕하세요. 오늘은 상태바(status bar, navigation bar 등)를 포함한 디바이스 전체 화면의 가로, 세로 길이는 구하는 방법을 알아보겠습니다. // top & bottom navigation bar 를 포함한 디바이스 화면의 가로,세로 길이 얻기 private fun getScreenSize(context: Context): IntArray { val screenDimensions = IntArray(2) // width[0], height[1] val orientation = context.resources.configuration.orientation //세로모드인지 가로모드인지 판별 val wm = context.getSystemService(Context.WINDOW_SERVIC.. 2022. 6. 18.
[Kotlin][Android] Lambda 사용해서 계산 기능 만들기 안녕하세요. 이번 시간에는 람다식을 사용해서 계산 기능을 만들겠습니다. 그동안 함수를 매개변수로 넘기고 싶은데, 람다식에 대해서 모르면, 번거롭게 인터페이스를 만들어서 하셨을 겁니다. 이제 그러시지 않으셔도 됩니다. 이번 시간에 만들 것은 더하기, 빼기, 곱하기 등 단일 연산을 하는 계산기를 만들겠습니다. 그런데 부호를 누르면 계산이 되는 것이 아닌, 부호를 선택하고 계산하기를 눌러야 계산이 되게 하겠습니다. activity를 하나 생성합니다. layout입니다. acitivty입니다. 람다식 정의 방법은 쉽습니다. (매개변수) -> 결과 (없는 경우 Unit)입니다. 예를 들어 int 2개를 받아서 결과값이 String인 함수형은 (Int, Int) -> String 로 두시면 됩니다. class Ma.. 2022. 6. 13.
[Java][Android] circle-menu 만들기 Gradle 추가 implementation 'com.ramotion.circlemenu:circle-menu:0.3.2' res\values\buttons.xml @drawable/ic_home_white_24dp @drawable/ic_search_white_24dp @drawable/ic_notifications_white_24dp @drawable/ic_settings_white_24dp @drawable/ic_place_white_24dp @android:color/holo_blue_light @android:color/holo_green_dark @android:color/holo_red_light @android:color/holo_purple @android:color/holo_orange.. 2022. 6. 12.
[Kotlin][Android] 오늘 요일 알아오기 오늘이 무슨 요일인지 알고 싶을 때 사용하면 좋을 것 같습니다. val today: String? = doDayOfWeek() 아래와 같이 함수로 구현한 후 변수로 선언에서 사용해 보세요. private fun doDayOfWeek(): String? { val cal: Calendar = Calendar.getInstance() var strWeek: String? = null val nWeek: Int = cal.get(Calendar.DAY_OF_WEEK) if (nWeek == 1) { strWeek = "일" } else if (nWeek == 2) { strWeek = "월" } else if (nWeek == 3) { strWeek = "화" } else if (nWeek == 4) { st.. 2022. 6. 11.