본문 바로가기
728x90

Java31

AOS_ ClickEvent 와 LongClickEvent 동시 사용 clickEvent 와 longClickEvent 를 구분해야 하는 상황이 옴.현재 클릭 이벤트와 롱클릭 이벤트를 중복으로 사용하고 있기 때문에 롱클릭을 하더라도 클릭 이벤트 효과가 같이 발생됨.롱클릭을 하더라도 클릭 이벤트 속성은 간섭을 안했으면 했었음. 그래서 위의 보이는 사진과 같이 return 값을 false -> true 로 바꿔준다면 일반 클릭 이벤트와 별개의 이벤트로 처리가 될 수 있음. 2024. 3. 4.
AOS_ HashMap 과 TreeMap 의 차이 HashMap 과 TreeMap 의 차이를 알게 되었음.우선 HashMap 을 사용한다면  위의 사진처럼 entrySet 을 돌릴때 만약 키값이 "1", "2", "3", "4" .. 이런식의 숫자 스트링이라고 한다면 순서보장이 되질 않아 어쩔땐 4번이 첫번째가 될 수 있고 2번이 첫번째가 될 수 있음.그래서 만약 순서보장을 해야한다면 밑의 사진처럼 TreeMap 으로 구성해야 순서를 보장받을 수 있음. 단, HashMap 과의 차이중 하나더 설명하자면, 속도가 HashMap 이 더 빠르고 TreeMap 이 좀 더 느리는 단점이 있으니 만약 데이터 구조가 클 경우 HashMap 을 사용해서 순서보장하거나 TreeMap 을 좀 더 최적화 시켜야 할 것 같음. 2024. 3. 4.
AOS_ Rxjava 아이템 정렬 Rxjava 로 아이템 notify를 구현하던 중 가나다순으로 정렬하고 싶었음.하지만 일반 객체에 Rxjava가 정렬하려면 특별한 조치가 필요했었음.바로 아래 보이는 이미지의 처리처럼 implement Comparable 해주어야 가능했었음.  그리고 밑에 사진처럼 처리해준다면 바로 가나다 순으로 정렬이 가능함. 2024. 3. 4.
AOS_ Custom Dialog 배경 동적 조절 안드로이드 커스텀 다이얼로그를 생성후 보여주려고 하는데 width, height 가 내가 원하는 크기만큼 조절이 안되었음.찾아보니 setContentView() 이후 아래의 코드를 넣어주면 작동이 된다는 stackoverflow 정보를 통해서 세팅해보니 원하는대로 설정이 잘 되었음.우선 context 를 가져와 해당 window 크기를 구한 후 dialog width , height 에 직접 크기정보를 넣어주는 코드임. 위의 정보 토대로 커스텀 다이얼로그에 적용시키면 효율적으로 관리할 수 있겠다는 판단이 들었음. 이 커스텀 다이얼로그는 많이 사용되니까 Utils. 클래스에 넣어서 싱글톤 형식으로 사용하면 좋을 듯 하다 아니면 abstract 클래스로 임포트 해주는 코드로도 나쁘진 않다. 2024. 3. 4.
AOS_ 데이터가 남아있을 경우 대비하여 초기화 진행하기 자바 개발을 하면서 커스텀 다이얼로그를 보여주면서 환경설정을 세팅해주었다.근데 밑에 사진처럼 한번 세팅해주고 다시 show() 함수를 실행한다면 계속 처음에 세팅되었던 데이터 대로만 작동해서 다른 클릭 리스너가 통하지 않게 되는 현상이 발생 그래서 밑에 사진처럼 클릭 리스너를 public 화여 다른 클릭 이벤트를 원할때 show() 함수 다음으로 실행하게 하여 원하는 이벤트가 되도록 설정함. 2024. 3. 4.
AOS_ Recyclerview 의 재사용 문제 Recyclerview 를 사용할 때 재사용 문제가 발생한다.재사용 문제는 연속적인 많은 데이터들을 뷰 안에서 사용되어지는데 많은 메모리를 차지하기 때문에 그 부분을 효율적으로 관리하려고 재사용을 하는데, 이 부분에서 같은 내용이 반복적으로 나오는 문제가 발생한다. Solution :onViewRecycled 메소드를 통해 기본 설정을 세팅해주기. 그리고 각 개인의 고유의 아이템 아이디를 해당 아이템의 고유 아이디로 설정해주기.  그리거 위와 같이 getItemId 를 적용했으면 adapter.setHasstableIds(true) 위와 같이 설정해주면 각 아이템의 고유 아이디가 있다는걸 알려주게 되는것이다. 2024. 3. 4.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
728x90