본문 바로가기

전체 글96

[안드로이드/Kotlin] EditText SaveState 에러 최근 회사에 입사하여 여러 가지 일을 하느라 블로그가 늦었는데, 이번 글은 입사 후 겪은 에러 중 제일 어이없는 에러에 대한 것이다. 먼저 문제상황부터 알려 줄 것인데, 내가 Custom EditText를 사용하다가 생긴 일이다. 자세하게 들어가 보자. 문제상황 우선 이 Custom EditText의 구조는 Custom ConstraintLayout에 CustomEditText와 ImageView(editText 밑줄 담당)로 이루어져 있고, 이 ConstraintLayout을 뷰에서 사용한다. 즉, ConstraintLayout안에 BaseEditText가 있는 것이다. 이 EditText를 회원가입 페이지에 사용하였는데 총 2개를 사용하였다. (이메일과 비밀번호) 그런데 화면이 바뀐 뒤 다시 돌아오면.. 2023. 10. 31.
[kortlin/안드로이드] 안드로이드 NFC Write 해보기 내가 프로젝트를 하면서 NFC 태그에 값을 작성해야 하는 상황이 생겼는데, 찾아보며 코드를 작성하니 자꾸 오류가 나서 내가 직접 올린다. 먼저 Manifest에 아래와 같은 코드를 작성해 주자. 그다음 엑티비티를 정의해주자. @AndroidEntryPoint class NfcActivity : AppCompatActivity() { private lateinit var nfcAdapter: NfcAdapter private lateinit var pending : PendingIntent @Inject lateinit var vm : MainViewModel private val binding : ActivityNfcBinding by lazy { ActivityNfcBinding.inflate(layo.. 2023. 6. 1.
2022년을 되돌아보며 이걸 왜 이제 쓰나 싶은데 사실 나도 잘 모르겠다. 흐음... 아마 이제 포트폴리오를 정리할 때가 왔기 때문인 것 같다. 늦은 것과는 상관없지만. 이번 2022년에는 상당히 많은 일이 있었던 것 같다. 크게 나열하자면 대구 ICT 교내 해커톤 2022 Hello New World 해커톤 교내 알고리즘 대회 요 정도가 될 것 같다. 물론 사이사이에 친구들과 했던 프로젝트, 개인프로젝트가 들어가긴 하겠지만. 그리고 분명히 클린아키텍처를 구현해서 가져오겠다고 했던 거 같은데 결국 2023년으로 와버렸다. 그래도 Dagger Hilt까지 공부했으니까 진짜로 얼마 뒤 클린아키텍처를 구현해서 올 수는 있을 것 같다. 사실 클린 아키텍처 구현에서 제일 막막한 게 domain 계층이라 구현이 계속 늦어지고 있다. 구현.. 2023. 2. 7.
[JAVA] 프로그래머스 - 폰켓몬 이번에 풀 문제는 폰켓몬이다. 문제 설명 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택 첫 번째(3번), 세.. 2022. 10. 6.
[안드로이드/Kotlin] DatePickerDialog 사용하기 안드로이드 앱을 만들다가 날짜를 입력받아야 하는 상황을 만났는데, 일일이 text로 받기에는 너무 번거로운 것 같아서 calendar 같은 것을 찾아보다가 발견한 친구이다. 생각보다 유용하게 쓰일 것 같다. 이 친구가 생성자로 OnDateSetListener를 받는데 이 Listener를 먼저 만들어 줘야 한다. val data = DatePickerDialog.OnDateSetListener { view, year, month, day -> binding.startDate.text = "${year}/${month}/${day}" } 나는 이런 식으로 만들어 줬다. 이 코드는 사용자가 날짜를 선택하고 OK 버튼을 눌렀을 때 startDate의 text가 바뀌는 코드이다. 이런 식으로 Listener를 .. 2022. 10. 5.