Android (30) 썸네일형 리스트형 [Android] EditText 다른 곳 터치 시 포커스 없애고 싶을 때 안드로이드에서 Edit Text 는 터치 시 포커스를 가지고 키보드가 올라오며, 자체 제공하는 키보드 내림버튼으로 키보드를 내린 후 다른 동작을 이용하는 방식입니다. 하지만 그냥 다른 곳을 터치했을 때 포커스를 잃고 키보드를 없애고 싶다면 Activity 클래스에서 Override 하여 dispatchTouchEvent 를 호출하면 됩니다. 해당 메서드는 MotionEvent 인자를 내려주기 때문에 해당 이벤트가 어떤 종류인지, 무엇과 상호작용 했는지 알 수 있습니다. 윈도우 C#의 이벤트처리와 비슷하네요. 정확한 구현 방식은 추후 코드로 업데이트 예정입니다... [Android] Activity 와 Service 양방향 통신 아... 이것 정말 애먹게 했다. 구현이 어려운게 아니라 뭐가 더 나은 방향인지 잡는게 힘들었다. BLE 기기에서 데이터를 Service 에서 받은 뒤 Activity 로 넘겨줘야 했는데 BroadcastReceiver 를 써서 Intent 에 데이터를 담을 수도 있고 Handler 를 써서 Message 에 데이터를 담을 수도 있고(Bundle 활용) 콜백을 등록해서 데이터를 전달할 수도 있었다. 게다가, Activity 에서 Service 로 함수호출도 필요했는데 아무리 생각해도 컴포넌트에 public 메서드를 열어서 함수를 호출한다는건 모듈화가 너무 안 돼있는 느낌이 강했다. 결국 똥고집이 대모험을 시작하게 한 것이다. 1. Activity -> Service 결론부터 말하면 public 메서드를 .. [Android Studio] Bumblebee patch 3 에서 발생한 BLUETOOTH_CONNECT 권한 문제 회사에서 BLE 를 사용하는 앱을 개발하던 중, 맥북프로를 지원해주신 덕분에 프로젝트를 기분좋은 마음으로 맥으로 옮겨서 작업하고 있었다. 그런데 이전 pc 에서는 보이지 않던 문제가 하나 보였다. 분명히 Manifest 에도 권한들을 설정해주고, ActivityResultContract 를 활용하여 권한체크 및 요청까지 해줬는데 Bluetooth관련 메서드 호출 하는 라인에 빨간줄이 그어지고 error 로 판명되며 BLUETOOTH_CONNECT 권한 체크가 필요하다고 보여졌다. 별짓을 다 해봤지만 에디터가 추천해주는대로 if문을 사용해 CONNECT 를 같은 블럭 안에서 체크하지 않으면 무조건 빨간 줄을 띄우고 있었다. 검색해보니 범블비 버전에서 발생하는 문제라는 것에 다들 입이 맞춰졌고 어떤 이는 범.. [Android, Java] Programmatically 하게 LinearLayout 안에 TextView 객체들 넣기 및 설정 요새 삼성폰이슈가 뜨거워서 걱정이 되는 안드로이드 개발자... 거두절미하고 본론으로. 힘들게 만들어놨더니 별로여서 지우기 전에 블로그로 공유한다. 우선 양옆으로 스크롤가능하게 만들어주기 위해 HorizontalScrollView 안에 LinearLayout을 horizontal 로 속성을 지정하여 넣었다. 이 LinearLayout 안에 다수의 TextView 들을 차례로 넣고 사용자에게 선택할 수 있도록 하려고 했다. 이 경우에는 선택을 관리해야 했기 때문에 Activity 안에 객체를 따로 만들어줬다. 주제와는 상관없다. 여기가 알짜배기다. for문 조건은 중요하지 않다. 1. TextView 객체를 Context를 넘기면서 하나 만든다. 2. setId() 를 통해 서로 다른 ID를 지정해줘야 하는.. [Android/java] 2개 이상 뷰를 RecyclerView 에 보여주기(3개) Android 를 다루기 시작한 초창기에는 RecyclerView 에 하나의 아이템만으로도 감지덕지이지만, 시간이 지날수록 다양한 UI 설계와 광고 노출 등으로 두 개 이상의 뷰를 하나의 RecyclerView 에 적용할 일이 생긴다. 1. xml 코드 구현 - 단순 RecyclerView 만 있는 모습. androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_wid.. [Android] Expandable RecyclerView 만들기(펼쳐지는 리스트) 공지사항이 들어가는 앱을 만들 일이 생겼는데 뷰를 위아래로 갈라서 내용을 아래에 띄워 주는 것 보다 카카오톡 공지사항 처럼 화살표를 누르면 내용이 펼쳐지도록 하는 것이 훨씬 깔끔하다는 걸 체감하게 됐다. 하지만 지금까지 펼쳐지는 리스트는 만들어 본 적이 없어서 서치를 했다. 간단한 결과물은 아래와 같다. 그리고 코드다. Activity 의 xml 에는 RecyclerView 만 덩그러니 있다. 아래는 RecyclerView 의 각 아이템을 담당하는 xml 이다. 자세히 보면 제목만 뜨는 ViewGroup 아래에 LinearLayout 으로 펼칠 그룹을 하나 더 만들어두고, Visibility 를 GONE 으로 설정했다. Activiyt.java 도 마찬가지로 어댑터 셋팅 밖에 없고, 핵심은 어댑터이다. .. Android "AppCompatActivity" not found 해결 오랜만에 실행하는 프로젝트를 안드로이드 스튜디오로 켜보니 AppCompatActivity 와 Firebase 의 import 했던 패키지들이 모두 빨간색이었다. 그래들에도 분명 넣고 싱크했었는데 뭐지 해서 찾아보니 AndroidProjects 에서 프로젝트 파일 -> 아래에서 ".idea" 를 "librares"로 바꾼 뒤 안드로이드 스튜디오를 재실행하면 된다. 정말 식겁했다... 이게 의존성의 문제인가... Android loading 화면 만들기(ProgressBar) 원래는 로딩화면을 프래그먼트로 만들었었다. 그래서 어디서나 이 프래그먼트를 붙이고 테마만 적용하면 되도록 해두려고 했는데 디자인을 찾아보니 다이얼로그 형태가 더 깔끔해보였다. 하지만 ProgressDialog 는 SDK 26 버전부터 Deprecated되었다. (어째 찾는 것 마다 Deprecated 돼서 한 번 더 찾는 것 같다 ㅋㅋㅋㅋ AsyncTask....ProgressDialog...startActivityForResult... 크흠 착각이겠지...) 문서를 보니 ProgressBar 를 쓰라고 한다. 영상과 문서를 참고해서 아래와 같이 만들었다. 1. layout.xml 코드 ProgressBar 에 Duration을 넣고 Drawable 을 세팅해준 것이 끝이다. 2. Drawable.xml.. 이전 1 2 3 4 다음