no image
6장 - 브로드캐스트 수신자 (SMS 문자 정보 액티비티에 띄우기)
브로드캐스팅(Broadcasting) : 메시지를 여러 객체에 전달글로벌 이벤트(Global Event) : 메시지를 브로드캐스팅으로 전달하는 방식 (ex. 전화, 문자에 대한 사용자 알림 메시지) 브로드캐스팅 메시지를 받고 싶으면 브로드캐스트 수신자를 만들어 앱에 등록한다. (registerReceiver(), onReceive())다른 앱의 메시지를 전달받을 수 있음.이 중 원하는 메시지만 받으려면 인텐트 필터를 사용하여 시스템에 등록하면 된다. 브로드캐스트 수신자의 특징 : 앱을 실행하지 않은 상태에서도 인텐트 안에 들어있는 메시지를 받아볼 수 있다. 브로드캐스트 수신자를 포함하고 있는 메인 액티비티가 적어도 한번 실행되어야 브로드캐스트 수신자가 메시지를 받을 수 있다. 브로드캐스트를 등록하는 방법..
2025.01.07
no image
duplicate class 에러 (JDK7, JDK8 충돌)
아 진짜 엿같았던 에러.. 아직도 뭐 때문에 문제가 발생했는지 정확하게는 잘 모르겠으나권한요청을 구현하기 위해 새로운 라이브러리를 implement해서 발생한 듯. 어떻게 해결했는지 그 과정. 사실 6,7번만 봐도 해결이 될거임. (아마?)(7번만 해도 해결이 되는지 아니면 위에 과정들 중 필요한 과정이 있던 건지는 아직 잘 모르겠음. 나중에 또 이런 문제가 발생했을 때 7번부터 해보고 안되면 위의 과정들 하나하나 해봅시다..) 1. 1/3 문제 발생. Duplicate class found라는 에러가 떴다. 대충 class X가 모듈 A랑 B에 둘 다 존재한다 이런 느낌이었음. 2. 라이브러리가 충돌했다는 것을 깨닫고 직접 라이브러리에 들어가서 충돌하는 내용을 지워주려고 했음. (ㅋㅋ..)(projec..
2025.01.05
no image
6장 - 서비스
백그라운드 : 화면 뒤의 공간서비스 : 백그라운드에서 실행되는 앱의 구성 요소 (앱의 구성요소이기 때문에 시스템에서 관리됨.)서비스는 비정상적으로 종료되더라도 시스템이 자동으로 재실행한다. (실행된 상태를 계속 유지하기 위함.)ex) 카카오톡 메시지는 앱이 실행되어 있지 않더라도 발신되어야 한다. startService() : 서비스를 실행하는 메서드. 이 메서드 호출 시 인텐트 객체를 파라미터로 전달한다.서비스를 시작하거나, 인텐트를 전달하는 목적으로 사용된다.(ex. 액티비티->서비스 데이터 전달 : 인텐트 객체를 만들고 거기에 부가 데이터를 넣은 뒤 startService() 호출) onStartCommand() : 전달된 인텐트 객체를 처리하는 메서드.서비스가 startService()에 의해 메..
2025.01.02
no image
도전!10 - 기본 앱 화면 구성
깃허브 레포지토리 GitHub - amye3057/SimpleMovieApp: 바로가기 메뉴와 뷰페이저2 넣기. 프래그먼트간의 데이터 이동 구현바로가기 메뉴와 뷰페이저2 넣기. 프래그먼트간의 데이터 이동 구현. Contribute to amye3057/SimpleMovieApp development by creating an account on GitHub.github.com  목차1. 구상2. 프로젝트 생성3. 코드 작성(메뉴 - 영화 목록 : 뷰페이저2)더보기3-1. app_bar_main.xml (툴바+프래그먼트)3-2. fragment_movie_list.xml ('영화 목록' 레이아웃)3-3. MovieListFragment.java ('영화 목록' 자바 코드)4. 코드 작성(바로가기 메뉴)더보..
2025.01.01
no image
도전!9 - 고객 정보 입력 화면의 구성
이름 입력란 (문자열 입력받음)나이 입력란 (숫자 입력받음. 최대 세자리까지 입력 가능)생년월일 버튼 : 누르면 생년월일 표시저장 버튼 : 입력된 이름과 나이를 토스트 메시지로 띄움 1. 프로젝트를 만들고 프래그먼트를 추가.먼저 activity_main.xml에 FragmentContainerView를 추가한다. (높이랑 너비 모두 match_parent)그 안에 들어갈 프래그먼트의 XML을 작성한다.XML 대충 위처럼 만들고 이러한 사항만 신경써주면 된다.1. 이름 inputType = "text", 나이 inputType = "number"2. 나이 maxLength = "3"   2. 입력란 테두리 만들기 (안해도 됨)drawable에 shape 형식의 파일을 만들..
2024.12.24
no image
5장 바로가기 메뉴(NavigationDrawer) 만들기
바로가기 메뉴(NavigationDrawer) : 화면의 좌측 상단에 위치한 햄버거 모양 아이콘을 누를 때 나타나는 화면.사용자의 프로필 정보나 설정 메뉴를 보여줄 때 주로 사용함. 이번 파트는 책의 버전과 현재 버전의 차이가 커서 아래 블로그를 참조하여 작성했다. Android - 바로가기 메뉴 만들기(1)바로가기 메뉴는 화면의 좌측 상단에 위치한 햄버거 모양 아이콘을 눌렀을 때 나타나는 화면이다. 웹이나 앱에서 자주 사용되는 기능이며 안드로이드에서는 NavigationDrawer 이라는 이름으로 불린velog.io Android - 바로가기 메뉴 만들기(2)[바로가기 메뉴 만들기(1)]의 xml 내용에 이어서 이번엔 자바 코드 파일들의 내용을 살펴보겠다. MainActivity.java의 내용이다 뷰..
2024.12.23
no image
5장 - 뷰페이저 만들기 (ViewPager2)
뷰페이저 : 손가락으로 좌우 스크롤하여 넘겨볼 수 있는 기능안에 프래그먼트를 넣을 수 있고, 좌우 스크롤로 프래그먼트를 전환하는 형식이다.어댑터를 사용함. 구현할 것 :1. 뷰페이저2. '처음으로' 버튼 : 누르면 첫 화면으로 이동3. 페이지 구분하는 상단 탭 ※ 책에서는 ViewPager를 사용했지만, 현재 안드로이드 스튜디오에서는 ViewPager가 사라지고 ViewPager2만 남았기 때문에 ViewPager2를 사용한 코드를 작성했다. (그래서 책이랑 코드가 좀 다르다.) 1. activity_main이런 식으로 배치한다. (책에서는 뷰페이저 안에 타이틀스트립을 넣는 방식으로 구현했으나, 안드로이드 스튜디오가 업데이트되면서 뷰페이저가 사라지고 뷰페이저2가 생겼다. 뷰페이저2에는 타이틀스트립을 넣을..
2024.12.22
no image
5장 상단 탭과 하단 탭 만들기
탭(Tab) : 몇 개의 버튼을 두고, 그 중 하나의 버튼을 눌러 서브 화면을 전환하는 방식.               내비게이션(Navigation) 위젯이라고 불리기도 한다. 상단 탭 : 액션바에 탭 기능을 넣어 보여주는 방식으로 제공됨하단 탭 : 별도의 위젯으로 제공됨(BottomNavigationView) (사실 이걸로 상단탭을 만들어도 됨. 탭의 위치를 옮길 수 있기 때문) 1. activity_main을 아래와 같은 형태로 만들어준다. //////////////////// 문제 발생 1  CoordinatorLayout : 이 안에 ..
2024.12.20
no image
5장 - 액션바 사용하기
액션바는 앱의 제목(Title)이 보이는 위쪽 부분이다.옵션 메뉴는 액션바에 포함되어 보이도록 만들어짐 옵션 메뉴 : 시스템 [메뉴] 버튼을 눌렀을 때 나타나는 메뉴. 각 화면마다 설정할 수 있음컨텍스트 메뉴 : 화면을 길게 누르면 나타나는 메뉴. 텍스트뷰의 편집을 바꾸거나 할 때 사용됨 (ex. 복사, 붙여넣기). 메뉴는 각각의 액티비티마다 설정할 수 있다. onCreateOptionMenu(Menu menu)onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)Menu나 ContextMenu 객체의 add 메서드를 사용해서 메뉴 아이템을 추가할 수 있다.(그렇지만 add로 메뉴를 추가하는 것보다는 XML에서..
2024.12.19