[안드로이드] 안드로이드스튜디오(Android Studio), Add Android ActionView, 안드로이드 액션뷰 추가하기(액션바(ActionBar)에 사용자 정의 뷰 추가하기), 안드로이드 예제, 안드로이드 강좌
참고 : 이미지서명은 제 와이프 블로그 이미지서명입니다.
안녕하세요 정보처리마법사 입니다.
이번 포스팅의 주제는 액션뷰(ActionView, 액션바에 사용자 정의 뷰) 추가하기에 관한 내용입니다.
액션바에느 액션 아이템이라 불리는 메뉴를 추가해서 사용자의 편의를 제공할 수 있지만 메뉴는 단지 메뉴이므로 버튼 등의 다른 뷰를 액션바에 추가해야 하는 경우도 있을 수 있습니다. 그래서 액션바에 원하는 뷰를 어떻게 추가할 수 있는지 살펴보겠습니다.
액션바에 버튼을 추가하고 버튼을 클릭했을때 Toast를 띄우는 예제입니다.
일단 res/layout 폴더에 mybutton.xml 파일을 하나 추가합니다.
activity_main.xml은 손 대지 않고 default로 그냥 쓰면 됩니다.
hirizontal LinearLayout 에 버튼 세 개를 배치하고 아이디는 button1, button2, button3 그리고 Text는 버튼1, 버튼2, 버튼3으로 하였습니다.
Activity클래스를 상속받고 View.OnClickListener인터페이스를 구현한 MainActivity 클래스입니다.
View myButtonLayout = getLayoutInflater().inflate(R.layout.mybutton, null);
작성한 버튼 레이아웃을 액티비티에서 사용하기 위해서는 인플레이션 작업이 필요합니다.
인플레이션이란, XML 레이아웃 파일을 읽어 View객체의 트리 구조로 만들어
코드에서 사용할 수 있게 해주는 작업을 말합니다.
myButtonLayout.findViewById(R.id.mybutton1).setOnClickListener(this);
인플레이션한 mybutton.xml의 버튼들을 찾아서 클릭 리스너를 등록합니다.
ActionBar ab = getActionBar();
ab.setCustomView(myButtonLayout);
액션바에 버튼 레이아웃을 설정합니다.
ab.setDisplayShowCustomEnabled(true);
버튼 레이아웃을 활성화합니다.
아까 작성한 사용자 정의 뷰(버튼 레이아웃)을 setCustomView() 메소드를 사용해서 액션바에 배치를 하였고,
setDisplayShowCustomEnabled() 메소드를 사용하여 사용자 정의 뷰를 활성화 하였습니다.
액션바에 뷰를 추가하는 것은 매우 단순한 일이며 실제 애플리케이션을 작성할 때
중요한 것은 액션바에 직접 정의한 뷰의 기능을 정의하는 작업입니다.
이 기능 정의는 대부분 클릭이벤트에 의해 처리될 것이므로
onClick() 메소드를 잘 정의하면 될 것 같습니다.
애플리케이션을 디바이스에서 실행한 모습입니다.
버튼1을 클릭하니 원했던 동작(Toast 띄우기) 을 잘 합니다.
이상으로 포스팅을 마칩니다. 감사합니다.
참고서적 : 200개의 단계별 예제로 배우는 안드로이드 4.0 [제이펍]
Fin.
잘 못 된 정보가 있으면 말씀해주세요~
공감버튼 클릭은 작성자에게 큰 힘이 됩니다. 행복한 하루 되세요.