반응형

Android 38

[삽질][Android] 동적 Dialog Fragment 사용하기(feat. Java)

버튼을 누르면 화면이 커지고 또 버튼을 누르면 화면이 작아지는 동적 Dialog를 사용하게 되었다. 이 과정에서 분명 wrap_content로 layout을 감쌌는데 동적으로 화면이 변하지 않는 현상이 발생했다.그래서 minwidth, minheight도 사용해 보고 별 짓을 다해봤는데, 계속해서 gone 상태에서 visible로 변할 때, 화면이 커지지 않고 컨텐츠들이 잘려서 나왔다. dialog Fragment는 기존 Fragment와는 다르게 넓이와 높이를 지정하는데 주의를 기울여야한다. 젤 상단 부모 layout을 wrap_content, wrap_content 로 설정 했을 때 문제가 있었다.이 경우에 match_parent, match_parent 로 변경 한 뒤에 Fragment로 가서 아래..

Android 2024.10.14

[삽질][Android] 안드로이드 분할 화면 오류(feat. Kotlin)

kotlin.UninitializedPropertyAccessException: lateinit property binding has not been initializedjava.lang.NullPointerException.ui.main.MainFragment.getBinding$app_debug(MainFragment.kt:102) 평소에 잘되던 기능이 분할화면에서 갑자기 앱이 강제 종료 되는 경우가 있다.(위에 꺼 아니면 아래 오류가 뜸) https://developer.android.com/develop/ui/compose/layouts/adaptive/support-multi-window-mode?hl=ko#lifecycle 멀티 윈도우 모드 지원  |  Jetpack Compose  |  An..

Android 2024.10.07

Handler(feat. Message Queue)

핸들러(Handler)는 특정 이벤트나 상황이 발생했을 때, 그에 대한 특정 작업을 수행하도록 미리 작성된 코드이다.  이해하기 쉽게 설명하자면, 아침에 일어날 때 알람을 맞춰논다. 알람을 맞춘 시간이 되면 알람이 울리면서 일어나게 되는데, 이때 '알람 소리가 울리는 시간'이 이벤트고, 알람이 울리는 그 순간에 '알림음이 울림' 이 핸들러다. 즉, 어떤 일이 벌어질 때, 그에 맞는 행동을 하도록 미리 정해놓은 코드를 핸들러라고 할 수 있다.  메세지 큐(Message Queue): 비동기 통신을 위한 데이터 구조로, 프로세스 간 또는 앱 간에 메세지를 안전하게 전송하고 처리할 수 있도록 돕는 시스템이다. - 메세지 큐를 사용하면 작업을 비동기적으로 처리할 수 있어 UI 스레드의 차단을 방지할 수 있다.-..

Android 2024.09.30

Android Webview에서 Json가져오고 사용하기(feat.Gson)

웹뷰에서 데이터 던져주면 앱으로 받고 프린터를 출력하는 작업을 하고 있따.  일단 웹뷰를 xml에 넣고 웹뷰가 있는 화면에 binding.webView.addJavascriptInterface(WebHanto(), "android")) 를 써줘야 한다.. Android의 WebView에서 JavaScript와 Android 코드 간의 상호작용을 가능하게 하는 메서드이다.이 코드의 역할은 다음과 같다.JavaScript와의 연결: WebBridge()라는 객체를 JavaScript에서 사용할 수 있도록 WebView에 추가한다. 이 객체는 JavaScript에서 호출할 수 있는 메서드를 정의할 수 있다.이름 지정: "android"라는 이름을 통해 JavaScript에서 이 객체를 참조할 수 있게 된다. ..

Android 2024.09.03

Android Progressbar 사용하기

webView를 사용 중인데 앱이 시작되고 url을 로딩하는데까지 상당한 시간이 소요된다. 성질 급한 한국인은 이런거 절대 못참음..하지만 프로그래스바와 함께라면...?일단 화면에 뭐라도 돌아가니깐 기다리게 된다.. 바로 코드로 보자 activity_main.xml />여기서 중요한건 android:elevation="8dp" 이다. 분명 프로그래스 바를 설정했는데 자꾸 안보여서 보니깐 웹뷰 뒤에 프로그래스 바가 있었다.. ㅡ,.ㅡ;; elevation 값을 설정하니 웹뷰 위로 예쁘게 나오는 모습style 값은 안드로이드에서 지원해주는 것 같다. 저 스타일은 무난한 동글뱅이 스타일이다.  class MainActivity : AppCompatActivity() { private ..

Android 2024.08.26

[Android] AES-256로 개인정보 암호화 및 복호화 하기 feat.Kotlin

https://www.veritas.com/ko/kr/information-center/aes-encryption 고급 암호화 표준: AES 암호화에 대한 통합 가이드 www.veritas.comAES 암호화 관련 내용은 위 사이트를 참고하도록. 참고 자료 Enhancing Data Privacy: AES-256 Encryption and Decryption in Android with Kotlin ExampleAES (Advanced Encryption Standard) is a widely used symmetric encryption algorithm that ensures data confidentiality by encrypting and…medium.com 유저로 부터 받아온 전화번호를 복호화..

Android 2024.07.31

Android 권한 받고 유저 핸드폰 번호 가져오기(feat. Kotlin)

AndroidManifest.xml  안드로이드 앱에서 권한을 체크하고,필요한 경우 권한을 요청하는 기능을 제공하는 유틸리티 객체 생성. Permission.ktobject Permission { fun checkAndRequestPermissions(activity: Activity, permissions: Array, requestCode: Int): Boolean { val permissionNeeded = permissions.filter { ContextCompat.checkSelfPermission(activity, it) != PackageManager.PERMISSION_GRANTED } return if (..

Android 2024.07.29

Android studio 버전 다른거 여러개 깔기

https://developer.android.com/studio/archive Android 스튜디오 다운로드 자료실  |  Android Studio  |  Android Developers이 페이지에는 Android 스튜디오 출시 관련 다운로드 자료실이 포함되어 있습니다.developer.android.com 깔고 싶은 버전은 여기서 찾으면 됨..꼭 영어로 보세요 한글을 안나옴 원하는 버전 찾아서 깔았으면 잘되는지 실행해보고 잘되면 다른 버전 깔러 고고 https://www.jetbrains.com/ko-kr/toolbox-app/?source=post_page-----7002e6437a85-------------------------------- JetBrains Toolbox App: 도구를 간..

Android 2024.07.26

[삽질] Dialog 커스텀해서 쓰기 ! (input있는 dialog)

졸업 프로젝트에서 어쩌다보니 전반적인 XML 구현을 하게 되었다. 얼마 안되는 화면이지만 까다로웠던 부분이 꽤 있었따. 그중에서 제일 기억에 남는 Dialog 이번 프로젝트에서 핵심은 링크를 저장할때, 링크에 제목과, 설명, 그리고 태그를 달 수 있따는 것이다. 태그를 달면 태그별로 링크들을 모아볼 수 있다. 자세한 설명은 프로젝트 뽀개기 포스팅에서 .. 아무튼 태그 창을 클릭하면 dialog가 나오고 태그를 선택할 수 있고, ADD버튼을 누르면 새로운 태그를 추가하는 방식이었다. material Design의 builder을 이용해서 간단하게 구현하였는데 PM님께서 태그를 추가하는 방식이 상당히 비효율적이라고, 창 한켠을 새로운 태그를 받는 곳으로 바꿔주실 수 있냐고 여쭤보셨다.. 처음에는 할게 산더미..

Android 2024.06.12

[삽질] Recycler View 값이 없을 때 안보이게 하기

?? 바텀 네비게이션 왜저래 고치고 왔다 ㅎㅎ 우리 프로젝트는 링크 저장을 편하게 해주는 어플이다.  링크를 저장할때 저장했던 맥락을 기록할 수 있고 관련해서 태그도 달 수 있다. 그리고 태그 별로 링크(훅)을 모아서 볼 수도 있따. 홈뷰 형식은 리사이클러 뷰 안에 리사이클러 뷰를 삽입하였다.. 매일 매일 직접 앱을 써보며 테스트를 하던 중   태그가 없을때 잘 나오던 훅이   이런식으로 빈값이 태그로 인식되어 리사이클러 뷰에 보이고 있었다. 기존 코드는 태그리스트에 아무런 값이 없을때 GONE을 사용해서 화면에 안보이게 하고 있었다. 그런데 API가 바뀌면서 뭐가 잘못되었는지 저렇게 ""값이 전달되어 태그에 나오고 있었따. 1. 태그리스트 값이 비어 있으면 null값 전달하기 APIServiceMaga..

Android 2024.06.08