본문 바로가기
728x90

Android43

[안드로이드] 액티비티 + 다수의 프래그먼트 상황에서 뒤로가기, 뒤로가기 두 번 클릭 처리하기 문제상황 액티비티는 MainActivity 하나와 액티비티 위에 다수의 프래그먼트를 add 하는 방식으로 앱을 개발하고 있었습니다. 프래그먼트에서는 OnBackPressedCallback을 통해 뒤로가기를 처리하고 이제 MainActivity에서는 뒤로가기를 두 번 클릭 시 앱을 종료되게끔 구현하기 위해 MainActivity에서 onBackPressed()를 override했습니다. 그런데 onBackPressed를 재정의하니 앞서 잘 작동하던 프래그먼트에서 뒤로가기가 MainActivity의 onBackPressed()에서 모두 실행되기 시작했습니다. 즉, 프래그먼트 화면이 여러 번 쌓이더라도 뒤로가기 클릭 시 바로 MainActivity의 onBackPressed()가 실행되기 때문에 앱이 종료되는.. 2023. 2. 12.
[안드로이드] ScrollView 안에 RecyclerView 구현 시 RecyclerView의 스크롤 막는 방법 커뮤니티 구조의 앱에서 게시글의 댓글을 구현하던 도중 댓글 목록 부분을 스크롤하면 스크롤이 버벅이는? 부드럽지 않게 동작하는 것을 확인했습니다. 아마 화면 전체를 감싸고 있는 ScrollView와 해당 댓글 화면을 담당하는 RecyclerView 각각의 스크롤이 중복되어 충돌할 것 같다는 생각에 해결방법을 찾아 보았습니다. 해결방법은 간단합니다. RecyclerView의 스크롤을 사용하지 않되 RecyclerView 아이템만큼 레이아웃 길이를 확장하게끔 수정합니다. 간단하지만 유용하게 사용할 것 같습니다 :) 2023. 2. 6.
[안드로이드] 프로젝트를 Git에 Push할 때 원하는 정보 숨기는 방법(.gitIgnore) 안드로이드 프로젝트를 Git에 Push할 때 Git에 올라가지 말아야 할 민감한 내용이 포함되어 있을 수 있습니다. 고유 API KEY나 서버에 접근하기 위한 도메인 주소는 Git에 공개적으로 올라가지 말아야 합니다. 저는 처음에 Git에 푸시할 때마다 번거롭지만 서버 도메인 주소를 지우고 푸시했는데 종종 까먹고 도메인 주소를 Git에 노출시킨 적이 있습니다..ㅎ 이번 기회에 안드로이드 프로젝트를 개발하며 개발자가 Git에 올리고 싶지 않은 정보를 Push 과정에서 제외하는 방법에 대해 알아보겠습니다. 1. gitIgnore 파일에 local.properties 추가하기 .gitIgnore 파일은 Project 레벨에서 확인할 수 있습니다. .gitIgnore 파일에 local.properties를 추가.. 2023. 2. 3.
[안드로이드] 회원가입 과정에서 EditText 텍스트 변경상태 감지해서 버튼 활성화하기 앱을 사용하다 보면 어떤 특정 상태에서만 버튼이 활성화되어 다음으로 이동할 수 있는 화면을 흔히 볼 수 있습니다. 이번 포스팅에서는 회원가입 과정에서 이메일과 비밀번호 입력 조건을 설정하고 조건에 부합하는 경우에만 버튼을 활성화시키는 방법에 대해 공부해 보겠습니다. 실행결과 회원가입 진행 과정에서 이메일 형식을 입력하고, 8자리 이상의 비밀번호와 비밀번호 확인이 일치하고, 이름과 생년월일이 입력되었을 경우에만 '회원가입 완료' 버튼의 색상을 변경하면서 활성화시키겠습니다. SignupFragment class SignupFragment : Fragment() { private var _binding : FragmentSignupBinding? = null private val binding get() = .. 2023. 2. 2.
[안드로이드] Fragment에서 뒤로가기 처리하기 - onBackPressedDispatcher 안드로이드 앱을 개발하다 보면 하나의 액티비티와 다수의 프래그먼트의 구성으로 개발하는 경우가 있습니다. 액티비티로만 구성된 화면의 경우 액티비티 위에 다른 액티비티가 쌓이는 방식이기 때문에 기기 메뉴바의 뒤로 가기 즉, onBackPressed()가 실행되면 최상단의 액티비티가 제거되면서 의도한 뒤로 가기가 정상적으로 작동합니다. 혹은 액티비티에서 뒤로 가기의 설정을 변경하기 위해 onBackPressed()를 override하여 필요에 따라 수정할 수 있습니다. 하지만 프래그먼트에서 뒤로 가기를 의도하기 위해 액티비티처럼 onBackPressed()를 찾는다면 해당 메소드를 찾을 수 없습니다. 이를 해결하기 위해 프래그먼트가 속한 액티비티에서 인터페이스를 정의해 인터페이스에서 onBackPressed를.. 2023. 2. 1.
[안드로이드] Retrofit 사용 시 "Unable to create call adapter for retrofit2 xxx ..." 오류 해결방법 안드로이드 개발을 하던 중 다음과 같은 에러가 발생했습니다. java.lang.IllegalArgumentException: Unable to create call adapter for class java.lang.Object 이것저것 고쳐보며 문구는 조금씩 달랐지만 "Unable to create call adapter for class xxxx"로 시작하는 에러문구가 계속 발생했습니다. 한참을 구글링하고 수정해 본 결과 제가 찾은 해결방법입니다. 1. retrofit과 json-converter의 의존성을 최신버전으로 수정합니다. 2. 코루틴 사용 시 코루틴 블록에서 호출하는 메소드의 fun 앞에 suspend 키워드를 붙였는지 확인합니다. 3. retrofit 통신의 응답결과를 확인합니다. (제가 .. 2023. 1. 31.
728x90
반응형