본문 바로가기

반응형

IT

(195)
안드로이드 스튜디오 브로드캐스트 수신자 * 안드로이드에서 브로드캐스팅이란 메시지를 여러 객체에 전달하는 것을 말한다. 여러 앱 구성 요소에 메세지를 전달할 때 브로드캐스팅을 사용한다. * 예를 들어, 다른 사람으로부터 문자를 받았을 때 이 문자를 SMS 수신 앱에 알려줘야 한다면 브로드캐스팅으로 전달하면 된다. 이런 메세지 전달 방식은 단말 전체에 적용될 수 있으므로 '글로벌 이벤트(Global Event)'라고 부른다. 글로벌 이벤트의 대표적인 예로는 '전화가 왔습니다.', '문자 메시지가 도착했습니다.'와 같은 사용자 알림 같은 것들이다. * 앱에서 브로드캐스팅 메시지를 받고 싶다면 브로드캐스트 수신자(Broadcast Receiver)를 만들어 앱에 등록하면 된다. 즉, 기기 안에서 동작하는 다른 앱 A로부터 특정 메시지를 받기 위해 만..
안드로이드 스튜디오 바로가기 메뉴 만들기 * 바로가기 메뉴는 화면의 좌측 상단에 위치한 햄버거 모양 아이콘을 눌렀을 때 나타나는 화면을 말한다. 웹이나 앱에서 자주 사용되는 기능이며 안드로이드에서는 NavigationDrawer라는 이름으로 불린다. 바로가기 메뉴는 몇 개의 화면에서 공통으로 보여줄 수 있기 때문에 빠르게 메뉴 기능에 접근하고자 할 때 사용한다. 또한 로그인한 사용자의 프로필 정보나 설정 메뉴를 보여줄 때도 사용할 수 있다. * 안드로이드 스튜디오에서 제공하는 Navigation Drawer Activity 템플릿을 활용하여 코드 공부 * /app/manifests/AndroidManifest.xml // mannifests/AndroidManifest.xml ... ... /app/manifests/AndroidManifest..
안드로이드 스튜디오 뷰페이저 만들기 * 뷰페이저는 손가락으로 좌우 스크롤하여 넘겨볼 수 있는 기능을 제공한다. 만약 화면 전체를 뷰페이저로 채운다면 좌우 스크롤을 통해 화면을 넘겨볼 수 있게 된다. 화면 일부분만 차지하고 있어도 그 부분에서만 좌우 스크롤이 동작한다. 뷰페이저는 그 안에 프래그먼트를 넣을 수 있고 좌우 스크롤로 프래그먼트를 전환하게 된다. 뷰페이저는 내부에서 어댑터라는 것과 상호작용하게 되어 있는데 이것은 뷰페이저가 여러 개의 아이템 중에 하나를 보여주는 방식으로 동작하기 때문이다. * 뷰페이저는 어댑터와 상호작용하면서 getCount 메서드로 몇 개의 프래그먼트가 들어 있는지 확인한다. 그런 다음, 화면의 상태에 따라 해당하는 프래그먼트를 꺼내와 보여주게 된다. * 타이틀스트립(TitleStrip)은 위나 아래쪽에 전체 ..
안드로이드 스튜디오 상단 탭과 하단 탭 만들기 * 모바일 단말은 일반적으로 화면의 크기가 작기 때문에 하나의 화면에 너무 많은 구성 요소를 넣으면 성능이나 사용성면에서 좋지 않다. 안드로이드의 경우에도 하나의 화면을 하나의 화면을 나타내는 액티비티를 최대한 많이 분리시켜서 하나의 화면에 보이는 뷰의 개수를 줄여주는 것이 좋다. * 그러나 때로는 하나의 화면에 여러 가지 구성 요소를 넣어두고 필요할 때 전환하여 보여주는 게 좋을 때도 있다. 대표적인 것이 서브 화면들이다. 몇 개의 버튼을 두고 그중 하나의 버튼을 눌러 서브 화면을 전화하는 방식처럼 하나의 뷰에서 여러 개의 정보를 볼 때 일반적으로 사용하는 뷰로 탭(Tab)을 예로 들 수 있다. 탭은 안드로이드의 전화번호부를 비롯한 몇 개의 기본 앱에서 볼 수 있는데 상단에 있는 탭을 누를 때마다 내용..
안드로이드 스튜디오 액션바 속성 설명 옵션 메뉴 시스템 [메뉴] 버튼을 눌렀을 때 나타나는 메뉴로 각 화면마다 설정할 수 있는 주요 메뉴이다. 컨텍스트 메뉴 화면을 길게 누르면 나타나는 메뉴로 뷰에 설정하여 나타나게 할 수 있다. 텍스트뷰의 편집 상태를 바꾸거나 할 때 사용한다. * 옵션 메뉴는 액션바(Action Bar)에 포함되어 보이도록 만들어져 있다. 액션바는 앱의 제목이 보이는 위쪽 부분을 말한다. 옵션 메뉴와 컨텍스트 메뉴는 각각의 애기비티마다 설정할 수 있다. //[Reference] public boolean onCreateOptionsMenu(Menu menu) public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo ..
안드로이드 스튜디오 프래그먼트 * 프래그먼트 클래스를 정의할 때 XML 레이아웃의 내용을 인플레이션하는 코드가 들어 있는 메서드의 이름이 onCreatView이다. 이 이름은 액티비티의 onCreate와 비슷한 이름이다. 이 메서드는 onCreate 메서드처럼 어떤 상태가 되면 자동으로 호출되는 메서드이다. * 프래그먼트는 액티비티를 본떠 만들면서 액티비티처럼 독립적으로 동작하도록 수명주기(Life Cycle) 메서드를 추가했다. 따라서 상태에 따라 API에서 미리 정해둔 콜백 함수가 호출되므로 그 안에 필요한 기능을 넣을 수 있다. 프래그먼트를 사용하는 목적 중의 하나가 분할된 화면들의 상태를 관리하는 것인데 이것을 가능하게 하는 것이 수명주기 메서드들이다. 즉, 액티비티 안에 들어 있는 프래그먼트도 필요할 때 화면에 보이거나 보이..
안드로이드 스튜디오 프래그먼트 생명주기 * 프래그먼트 클래스를 정의할 때 XML 레이아웃의 내용을 인플레이션하는 코드가 들어 있는 메서드의 이름이 onCreatView이다. 이 이름은 액티비티의 onCreate와 비슷한 이름이다. 이 메서드는 onCreate 메서드처럼 어떤 상태가 되면 자동으로 호출되는 메서드이다. * 프래그먼트는 액티비티를 본떠 만들면서 액티비티처럼 독립적으로 동작하도록 수명주기(Life Cycle) 메서드를 추가했다. 따라서 상태에 따라 API에서 미리 정해둔 콜백 함수가 호출되므로 그 안에 필요한 기능을 넣을 수 있다. 프래그먼트를 사용하는 목적 중의 하나가 분할된 화면들의 상태를 관리하는 것인데 이것을 가능하게 하는 것이 수명주기 메서드들이다. 즉, 액티비티 안에 들어 있는 프래그먼트도 필요할 때 화면에 보이거나 보이..
안드로이드 스튜디오 프래그먼트 개념정리 * 프래그먼트는 레이아웃이 중복되는 문제를 해결하기 위해 부분 화면을 위한 레이아웃이나 소스 코드를 한 번만 정의하고 재사용할 수 있도록 만든 것이다. * 코드의 복잡성을 해결하기 위해 각 부분 화면의 코드를 분리시킨 것이다. * 가장 큰 목적은 분할된 화면들을 독립적으로 구성하고 그 상태를 관리하는 데 있다. * 똑같이 XML 레이아웃으로 만들지만 액티비티에 사용되면 시스템에서 관리하는 화면이고, 프래그먼트에서 사용되면 단순히 액티비티 위에 올라가는 화면의 일부, 즉'부분 화면'이 된다. * 프레그먼트는 항상 액티비티 위에 올라가 있어야 한다. 왜냐하면 액티비티로 만든 화면을 분할한 뒤 각각의 부분 화면을 프래그먼트로 만들고 그 프래그먼트를 독립적으로 관리하는 것이 목표이기 때문이다. 따라서 프로그먼트..

반응형