일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- effect api
- {"msg":"cannot find method
- android.view.WindowManager.BadTokenException
- Could not find method
- databinding xml
- material3
- LaunchedEffect vs rememberCoroutineScope
- Java
- LaunchedEffect
- @provides @binds 차이
- 안드로이드
- android compose
- 힐트
- [databinding]
- isFinishing()
- WindowManager$BadTokenException
- android mvi
- android compose stable
- 레트로핏
- Android
- compose side-effect
- dispatchTouchEvent
- @immutable
- onIntercepterTouchEvent
- 안드로이드 다이얼로그 오류
- @stable
- 터치이벤트 순서
- Python
- rememberCoroutineScope
- databinding error
- Today
- Total
목록Android (6)
개발관련일지
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..
이번 포스팅은 아래의 사진처럼 시크바에 설정가능한 버튼이 두개가 놓여져있는 시크바를 구현함 seekbar란 가격 , 음량 , 시간 조절 등에 사용 되는 유아이 위의 사진 형태의 시크바는 영어로는 dual thumb로 불리는데 한국어로 커스텀시크바? , 듀얼시크바? 이런식으로 검색해서 찾았음 정확한 명칭 모르겠다. 1년전보다 오래된 글들을 보면 외부 라이브러리를 이용해서 사용하는 모습을 볼 수 있는데 , 작년 8월 머터리얼 디자인 컴포넌트 (MDC)에서 1.2.0 버전을 정식 출시하면서 slider , rangeSlider 이름으로 포함되어서 나왔다. 해당글은 커스텀부분은 제외하고 정말 기본적인 사용에 필요한 코드만 기록함. 먼저 라이브러리추가가 되어있는지 확인 , 프로젝트 생성하면 들어가있음 아래의 3가..
쉐어드프리퍼런스 - 디바이스에 데이터를 저장하는 클래스 (폰에서 해당 앱이 삭제되면 저장된 데이터도 같이 삭제) - key & value 형식으로 데이터를 저장함 SharedPreferences sharedName = getSharedPreferences("keyName", MODE_PRIVATE); SharedPreferences.Editor editorName = sharedName.edit(); 쉐어드의 데이터를 사용만하는 경우에는 에디터는 필요없음 쉐어드에 데이터삽입 SharedPreferences sharedName = getSharedPreferences("sfName", MODE_PRIVATE); SharedPreferences.Editor editorName = sharedName.edit..
리사이클러뷰의 아이템을 클릭하면 특성 이벤트가 실행 되도록 하기 이전글의 코드에 어뎁터에 아이템클릭 리스너를 추가하고 홀더에서 포지션 반환하도록하기 public class MainAdapter extends RecyclerView.Adapter{ private ArrayList recyclerList; public MainAdapter(ArrayList recipeList) { this.recyclerList = recipeList; } public interface OnItemClickListener { //메인엑티비티에서 리사이클러뷰의 아이템을 클릭했을 시 발생하는 이벤트 void onItemClick(View v, int position) ; } private OnItemClickListener l..