개발새발 - IT 기술블로그
article thumbnail
[안드로이드] EditText 입력 키패드(키보드) 올리기 및 내리기
Android 2023. 6. 9. 16:04

안녕하세요. 이번 포스팅에서는 EditText를 클릭 하였을 때 자동으로 보여지는 입력 키패드를 수동으로 컨트롤하는 예제를 진행해보겠습니다. 결과 GIF 먼저, 결과 화면을 보시겠습니다. 아래 GIF 처럼 특정 이벤트가 발생하였을 때 EditText에 포커스를 주고 키보드를 올리고 내리는 방식으로 구현 할 수 있습니다. 전체코드 레이아웃 파일엔 EditText와 키패드를 올리는 버튼, 내리는 버튼을 각각 1개씩 생성하였습니다. KeyboardController.kt object KeyboardController { // 키보드 올리기 fun upKeyboard(context: Context, et: EditText) { val inputMethodManager = context.getSystemServi..

article thumbnail
[안드로이드] 에러 'Cannot invoke setValue on a background thread' 해결
Android 2023. 6. 8. 09:32

java.lang.IllegalStateException: Cannot invoke setValue on a background thread 해당 에러는 라이브데이터를 사용할 때 MutableLiveData 타입의 변수에 값을 넣는 과정에서 주로 발생합니다. Livedata 객체에 값을 넣는 방식은 setValue와 postValue 두가지가 존재합니다. setValue는 메인 스레드에서 직접 값을 할당하는 방식이고, 반대로 postValue는 백그라운드에서 값을 할당하는 방식입니다. 만약 위 에러가 발생했다면 setValue를 백그라운드 스레드에서 사용하고 있진 않은지 확인하기 바랍니다. postValue와 setValue의 사용방법을 간단하게 보여드리고 글을 마무리하겠습니다. setValue muta..

article thumbnail
[안드로이드] GPS 위치 정보 접근 권한 확인하기!
Android 2023. 5. 31. 16:09

안녕하세요. 이번 글을 쓰게 된 이유는 예전에 같이 알아보았던 디바이스 GPS 센서를 활용한 데이터를 다루는 글의 추가적인 정보를 전달드리기 위해서입니다. 예전 글에선 Google Location Service를 사용하여 현재 디바이스의 위치정보와 그 위치정보를 주소로 변환하는 과정까지 진행해 보았었습니다. 이번엔 좀 더 디테일한 처리를 위해 실제 사용자가 위치정보를 불러올 수 있는 환경인가? 를 검사하여 정상적으로 불러올 수 있는 환경일 경우에만 불러오는 처리를 간단하게 해 보겠습니다. 이번글에 위치를 불러오는 코드는 생략되었으니 혹시나 현재 위·경도 정보나 주소정보를 불러오는 글이 궁금하시면 아래 링크를 달아놓겠습니다. https://tekken5953.tistory.com/17 [안드로이드] 내 G..

article thumbnail
[안드로이드] Toast 메시지 누를때마다 갱신시키기
Android 2023. 4. 28. 17:17

안녕하세요. 이번 포스팅에는 안드로이드 개발에서 자주 사용하는 토스트 메시지를 즉시 생성(갱신)하는 방식에 대해 알아보겠습니다. 개요 토스트메시지는 일반적으로 정해진 Duration(지속시간)이 지속될 때 까지 다른 토스트 메시지들의 접근을 Blocking합니다. 왜냐하면 같은 스레드를 동기방식으로 사용하기 때문이죠. 그래서 만약 사용자가 토스트 메시지를 짧은시간에 여러번 호출한다면 아래 GIF와 같이 본인만의 시간의 흐름을 가지기 시작하며, 이는 사용자로 하여금 반응이 느리고 렉이 걸리는 듯한 오해를 가지게하기 쉽습니다. ※ 메시지가 서로 다름을 쉽게 확인하기위해 1씩 증가하는 카운트를 붙였습니다. 그럼 누르는 즉시 토스트 메시지로 띄워 주려면 어떻게 해야할까요? 저는 버튼이 클릭 될 때마다 새로운 스..

article thumbnail
[안드로이드] XML뷰에 샘플 데이터 넣기
Android 2023. 4. 19. 13:06

안녕하세요. 이번 포스팅에선 레이아웃파일(.xml)에서 텍스트 혹은 이미지에 프리뷰 용 샘플 데이터를 넣는 방법에 대해 알아보겠습니다.    사용목적보통 리사이클러뷰나 리스트뷰 처럼 리스트 아이템에 해당하는 레이아웃을 따로 만들고 뷰에 적용하는 방식의 구성을 사용할 때, 실제 데이터가 정해지지 않은 상황에서 틀만 만들어야 하는 경우가 간혹 있죠. 그럴때 안드로이드에서 제공하는 샘플 데이터를 이용하여 데이터가 들어갔을 경우 어떤방식으로 뷰가 보여질지 확인할 수 있습니다.   사용방식그냥 단순 텍스트나 이미지 단일 뷰에 적용 할 수도있지만 저는 사용성이 더 높은 리사이클러뷰의 아이템에 적용하였습니다. 먼저, 액티비티 레이아웃에 리사이클러뷰를 생성해줍니다.    그 다음 리스트 아이템 레이아웃파일을 생성..

article thumbnail
[안드로이드] 배터리 잔량 + 충전상태 불러오기 - BatteryManager
Android 2023. 4. 13. 14:02

안녕하세요. 이번 포스팅에서는 디바이스의 충전케이블 연결 여부와 배터리 잔량을 불러오는 기능에 대해 같이 알아보겠습니다. 진행 순서는 아래와 같습니다. 참고로 BatteryManager를 제외한 추가적인 학습이 필요한 기능의 사용을 최대한 지양하며 작성했습니다. 1. 배터리의 상태를 표시하는 레이아웃 생성 2. 암시적 인텐트로 BroadCast Receiver 호출 3. 뷰를 실시간으로 업데이트 하기 위한 BroadCast Receiver 생성 4. Manifest 파일에 BroadCast Receiver 등록하기 결과 GIF 배터리의 상태를 표시하는 레이아웃 생성 배터리의 상태에 따라 변화하는 ImageView와 TextView, 잔량을 표시할 TextView를 생성하였습니다. 배터리 상태는 1~6단계..

article thumbnail
[안드로이드] 텍스트 폰트 적용하기(Kotlin,Java,XML)
Android 2023. 4. 7. 17:05

안녕하세요. 이번 포스팅에선 문자열에 폰트를 적용하는 방법에 대해 알아보겠습니다. 1. XML 레이아웃 파일에서 적용하기 2. Java and Kotlin 파일에서 적용하기 XML 레이아웃 파일에서 적용하기 Setting 먼저 프로젝트 res 폴더에 font 패키지를 추가하고 폰트 ttf 혹은 otf파일을 넣어줍니다. res 폴더 우클릭 > New > Android Resource Directory > Resource type: font > 폰트파일 복사/붙여넣기 activity_main.xml android:fontFamily="@font/폰트명" Java and Kotlin 파일에서 적용하기 Setting 클래스파일에서 폰트를 변경하기 위해 Assets 폴더를 생성합니다. app 폴더 우클릭 > Ne..

article thumbnail
[안드로이드] 내 GPS 위치정보 + 상세주소 불러오기 - Google's Location Service
Android 2023. 3. 31. 15:40

안녕하세요. 이번 포스팅에서는 스마트폰에 내장된 GPS 센서가 측정한 데이터를 불러오고, 상세 데이터로 변환하는 예제를 진행 해보겠습니다. 특정 기술에 대한 이해가 목적이므로 추가적인 학습이 필요한 기술의 사용은 최대한 지양하였습니다. 그럼 같이 알아보겠습니다! 개요 이번 예제에서는 Google Location Service 라이브러리의 Location과 GeoCoder를 사용하여 아래의 순서로 위치 정보를 불러오는 절차를 진행해보겠습니다. 1. 현재 GPS 위치정보 불러오기 2. 불러온 위치정보를 바탕으로 추가적인 주소정보 불러오기 3. 임의의 위치와 지금 내 위치와의 거리 구하기 본론 라이브러리 추가 항상 그렇듯 라이브러리는 최신버전의 태그를 사용해주시면 됩니다. 저는 21.0.1 버전을 사용하였습니..