일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 1차원 DP
- 2차원 dp
- 99클럽
- @Builder
- @GeneratedValue
- @GenericGenerator
- @NoargsConstructor
- @Transactional
- Actions
- Amazon EFS
- amazon fsx
- Android Studio
- ANSI SQL
- ApplicationEvent
- assertThat
- async/await
- AVG
- AWS
- Azure
- bind
- builder
- button
- c++
- c++ builder
- c03
- Callback
- case when
- CCW
- chat GPT
- CICD
- Today
- Total
목록Moblie/Android (35)
기록
문제 사이드 프로젝트(Android application to organize photos by swiping)중 상하좌우 슬라이딩 이벤트별 액션을 지정해야 했다. 어떤 이벤트에 어떤 액션을 지정할지는 정해지지 않았고, 샘플 앱을 만들어 테스트 한 후에 정하기로 했다. 테스트1 좌우 스와이프 : 사진 커서 이동 상하 스와이프 : 사진 삭제 또는 사진 저장 테스트2 좌우 스와이프 : 사진 삭제 또는 사진 저장 상하 스와이프 : 사진 커서 이동 해결방법 뷰페이저를 2중으로 감싸서 상하좌우 스와이핑 이벤트에 액션을 지정했다. 테스트1 -> 테스트2로 전환할 때 뷰페이저의 방향만 반대로 바뀌어주면 되어서, 코드의 변경이 적었다. 코드 https://github.com/youngyin/orgnzPhts 1. Pa..
이슈 프래그먼트 이동 후 돌아왔을 때, 아래와 같은 오류가 발생했다. 참고자료 https://stackoverflow.com/questions/30253238/android-spinners-onitemselected-executed-twice-when-going-back-to-fragment/30253459 breakPoint를 찍어서 테스트해본 결과, Android 프레임워크에 의해 두번 호출되는데, 그 중 첫번째에서 view에 null값을 반환하여 생기는 문제임을 확인했다. 해결방법 view가 null 값을 반환할 수 있도록 수정한다. 문제 있는 코드 with(binding.spinner){ this.adapter = adapter this.onItemSelectedListener = object :..
서론 초기에, 프로젝트에서 위와 같은 화면이 필요했었다. 당시에는 리사이클러뷰 안에 리사이클러뷰를 넣는 방법으로 문제를 해결했었다. 최근에 리사이클러뷰에 여러개의 뷰타입을 연결할 수 있다는 것을 알게 되었다. 2022.05.29 - [안드로이드/예제] - AndroidStudio/java/ 멀티뷰 타입 Recyclerview View Binding과 멀티뷰 타입 리사이클러뷰를 활용하여 adapter을 하나만 쓰도록 리팩토링 작업을 했다. 나머지는 동일하고, adapter와 adapter에서 사용하는 dataset의 구조를 변경하였다. CODE New Adapter import android.content.Context import android.content.Intent import android.vie..
Enum 명명된 값의 집합을 이루는 자료형 자바 Enum은 상수 컬렉션을 정의하는 데 쓰이는 특수한 타입으로 상수, 메서드 등이 포함될 수 있다. 장점 허용가능한 값들을 제한 내용의 추가 및 변경 시 범위가 최소화 개요 쓰기 화면을 재사용하기 위해 아래와 같은 구조를 계획했다. (1) 기존의 내용을 수정할지/ (2) 새로 작성할지에 따라 수행해야 하는 작업을 분기해 주어야 했고, 이를 위해 fragment를 생성할 때, (1) 기존의 내용을 수정할지/ (2) 새로 작성할지를 전달해주기로 했다. 활용 (1) MainActivity(TilListFragment) → MainActivity(TilItemFragment) // TilParentFragment.kt fun changeFragment(fragmen..
개요 앱을 시작하면 Progress Activity 에서 공공 데이터를 받아서, SQlite 에 저장하는 방식으로 프로젝트를 설계/개발했다. 어느 순간부터 데이터를 받아오던 중에 아래와 같은 오류가 발생했다. 저녁에 오류가 발생했는데, 당장 다음날 자정이 프로젝트 마감이라 어떻게든 해결해야 했다. 해결방법 우선, appname/app/src/main/res/raw/ 내에 파일 데이터를 xml 형태로 삽입했다. raw 파일을 읽어 parsing 하도록 수정한다. // 기존 url 방식 /* String queryUrl = "https://apis.data.go.kr/..."; URL url = new URL(queryUrl); InputStream is = url.openStream(); */ // raw..
개요 프로젝트 중 글꼴을 변경하는 것을 맡게 되었다. 가이드라인에 정리된 대로 따라해보면서 기록을 남겨두고자 한다. 예제 font directory 만들기 add font file font.xml 파일을 만들지 않아도, xml에서 fontFamily로 적용이 가능하다. 주의할 점은 리소스 파일 이름에 대문자나 특정한 특수기호가 포함되지 않도록 해야 한다. 모든 리소스 ID는 aapt 도구가 자동으로 생성하는 프로젝트의 R 클래스에서 정의되기에, 리소스의 파일명은 자바의 명명 규칙을 준수해야 한다. 참고자료 https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml?hl=ko XML의 글꼴 | Android 개발자 | Android D..
개요 firebase를 통한 로그인 서비스를 구현하던 중에 uid 값이 들어오지 않는 문제가 발생했다. 우선, uid값에 null 값이 들어오면 테스트 계정의 uid를 연결하도록 코드를 작성했다. class ReadUserRequest : BaseRequest() { override val TAG = "ReadUserRequest" private val DATA_PATH = "Users" override fun request() { val uid = AppApplication().getUid() FirebaseDatabase.getInstance() .reference .child(DATA_PATH) .child(uid!!) .get() .addOnSuccessListener { val result = ..
개요 다른 블로그의 포스팅 중 콜백과 관련된 포스팅은 자바스크립트를 이용한 예제와 프로미스를 활용하는 개선 방법 등을 담고 있는 포스팅이 많다. 안드로이드에서는 어떻게 콜백을 이용할 수 있을까 궁금해져서, 프로젝트에 적용해보고 글로 정리해 두려고 한다. 프로젝트가 어느 정도 틀이 잡히면 기능별 모듈화를 시도한다. 프로젝트 중 데이터를 송수신하는 코드들을 모아 network 모듈로 구성하려는 시도가 있었다. 클래스간 서로 참조하지 않도록 결합도를 낮추어야 했고, 여기에 callback을 이용했다. 해당 프로젝트의 정보 : db(firebase), front(android) 순서 1) RequestListener.kt 만들기 2) GetRequest.kt 만들기 3) Activity에서 호출 예제 1) Re..