본문 바로가기

안드로이드30

[안드로이드/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.
[안드로이드/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.
[안드로이드] java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference 안드로이드를 개발하다가 dialog를 하나 만들고 실행했는데 이런 에러가 나왔다. 내가 button을 가져올때 그냥 findViewId를 사용했기 때문이다. 그래서 위 사진같이 dialog를 만들고 그 dialog에서 findViewId를 사용해주면된다. 2022. 9. 27.
[안드로이드/Kotlin] 카메라 사용하고 이미지 뷰에 띄워보기 친구가 안드로이드 책을 선물로 사줬는데 생각보다 재밌어 보이는 게 많아서 따라 하고 있다. 뭔가 복습도 되고 괜찮은느낌... 아무튼 이번에는 카메라를 사용하는 방법이다. 먼저 Gradle부터 추가하도록 하자. 카메라 촬영만 하는 것이 아니라 이미지를 띄워야 하기 때문에 ActivityResultLauncher를 사용해서 결과를 처리해야 한다. 이 ActivityResultLauncher에 관한 의존성이다. android { //... buildFeatures{ viewBinding true } } dependencies { //... implementation "androidx.activity:activity-ktx:1.5.1" implementation "androidx.fragment:fragment.. 2022. 8. 26.