일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 원생성
- onIntercepterTouchEvent
- [databinding]
- 안드로이드 다이얼로그 오류
- multiseekbar
- @provides @binds 차이
- rangeslider
- android.view.WindowManager.BadTokenException
- 지오코더
- WindowManager$BadTokenException
- 레트로핏
- material3
- Android
- databinding xml
- 터치이벤트 순서
- 원이동
- dispatchTouchEvent
- 도형생성
- isFinishing()
- 듀얼시크바
- 힐트
- dualthumbseekbar
- Java
- 터치순서
- databinding error
- Could not find method
- 안드로이드
- Python
- android compose
- {"msg":"cannot find method
- Today
- Total
목록전체 글 (24)
개발관련일지

힐트에 대해서 기본과 궁금했던 부분들 정리 힐트는 안드로이드에서 의존성주입 라이브러리이다. Dagger2에서 단순하게 만들기 위해서 만들어졌고 Dagger2 기반으로 빌드된다. Dagger2를 사용해본적은 없지만 힐트가 Dagger2에서 파생된거여서 아주 기본적인부분은 정리했다. Dagger2 class MyApplication : Application() { val appContainer = AppContainer() // 컨테이너 선언 } class LoginContainer(val userRepository: UserRepository) { val loginData = LoginUserData() val loginViewModelFactory = LoginViewModelFactory(userRep..

안드로이드 컴포즈 학습하는 도중 material3 theme , 사이즈 변화에 대해서 어떻게 대응하나 학습하기 위해 Reply 샘플앱 대해서 전체적인 구조를 파악하기 위해서 학습 Jatpack Compsose는 M3를 사용할 수 있는 구현체를 제공하고 있으며 M3가 적용된 프로젝트를 생성하면 theme 디렉토리가 있고 기본적으로 Color, Theme , Type 세개의 파일이 생성 되어있다. color scheme과 typography를 정의하고 MateralTheme에 적용이 가능하다. Color Scheme에서 주요색상을 기준으로 톤을 변경하면서 M3의 컬러 유틸리티 색상파레트를 이용한다. 각 색상값들이 슬롯(이름)이 존재한다. 색상들을 미리 정의해놓고 theme를 사용한다. 위의 사진이 M3에서 ..
첫번째 java.lang.IllegalStateException: Could not find method @{(v) -> item.listener.onItemClick android:onClick="@{(v) -> item.listener.onItemClick(v , item) " ★ } 빠짐 이런식으로 나오는 경우 xml파일에 선언한 부분에서 오타가 있는지 확인 나같은 경우는 } 하나 빠져있엇음 두번째 [databinding] {"msg":"cannot find method onItemClick(android.view.View, 선언된클래스위치) in class xml경로 , "pos":[{"line0":17,"col0":34,"line1":17,"col1":82}]} android:onClick="@..

안드로이드에선 앱에 저장소가 2가지가있다. 내부 저장소(Internal Storage) , 외부 저장소(External Storage) 내부저장소 해당 앱의 private 공간이며 다른앱에서 접근이 불가능하다 노출되면 안되는 앱의 데이터가 사용되게 된다. 위의 내용으로 구성 되어져있다 외부저장소 public하게 공개되는 공간이다. 권한만 있게되면 엑세스가 가능하다. 외부저장소가 안드로이드Q (api29)부터 구조가 바뀌었다. api29를 기준으로 이전의 스토리지 형태를 다르게 부른다. version legacy storage version >- api29 -> scoped storage 구조를 이해하는데 가장 도움이 되었던 글이다. 출처 legacy storage (안드로이드 Q 이전..

WindowManager$BadTokenException 처음 보는 오류여서 검색해보았는데 대부분 유저들의 내용으론 화면에 보여질 컨테스트와 다이얼로그의 문제였다 내 경우는 죽은 액티비티에 서브스레드에서 다이얼로그를 요청하는 상황에서 에러가 나온다 생각했다. 위와 같은 상황이었고 서브스레드를 돌려놓고 엑티비티를 종료하니 에러를 만날 수 있었다. 해결방법으론 엑티비티의 종료여부를 보고 다이얼로그를 안띄우는 방식이 있엇다 isFinishing()을 사용해서 아래 코드처럼 해결이 될것이다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 if(! 액티비티.this.isFinishing()){ new MaterialAlertDialogBuilder(액티비티.this) .setTitle("제목") .se..

뷰가 겹쳐져있는 상황이 발생했고 그중에서 특정 뷰가 터치 되었을 시 이벤트를 받아야할 상황이 생겨서 찾아본 내용을 정리 안드로이드에서 xml로 사용자에게 보여줄 화면을 만들게 될 시 View(UI Widget) 와 ViewGroup(linear , frame , constraint etc) 객체를 이용해서 만든다. 뷰그룹 안에 뷰그룹 혹은 뷰를 배치하게 되며 유저가 화면에서 뷰그룹 혹은 뷰를 터치했을 경우 클래스에서 어떤 흐름으로 코드가 동작하는지 찾아보았다 스택오버플로우에서 확인 한 내용의 경우 엑티비티 -> 뷰그룹 -> 뷰 순으로 터치가 코드가 동작한다고 나와있었으며 직관적인 그림이 나와있었다 우측 사진의 왼쪽화살표를 보면 알 수 있듯이 상위뷰 먼저 dispatchTouchEvent() -> onIn..

화면에 원을 생성하고 드래그로 이동시키기 위해 만든 코드이다. 아웃풋 뷰에서 원을 생성하고 터치 위치를 감지해 원을 움직이도록 구현하였다. 버튼을 클릭 -> 원이 화면중앙에 생성 -> 원을 클릭 후 드래그 -> 드래그 포인트를 따라서 원이 이동 원을 그리기위해선 좌표를 알아야 했고 클릭 여부를 좌표로 파악했다 도형을 생성하기 위해서 Canvas , Paint의 대한 이해가 필요한데 아래의 블로그가 가장 큰 도움이 되었음 https://www.charlezz.com/?p=1433 Android의 Canvas에 그려보자 : 선, 도형 그리고 그림까지!? | 찰스의 안드로이드 원문 : https://medium.com/over-engineering/getting-started-with-drawing-on-th..

위도경도를 지오코더로 이용해서 시 , 구 , 동 만 주소만 가져올려고 했었다. 예제는 아래와 같은 코드를 긁어서 사용했다. public String getAddress(Context mContext, double lat, double lng) { String nowAddr ="현재 위치를 확인 할 수 없습니다."; Geocoder geocoder = new Geocoder(mContext, Locale.KOREA); List address; try { if (geocoder != null) { address = geocoder.getFromLocation(lat, lng, 1); if (address != null && address.size() > 0) { nowAddr = address.get(0)...