Context Menu
Context 메뉴란 UI에서 특정한 항목에 영향을 주는 동작을 선택할 수 있는 메뉴를 말한다.
Context 메뉴 생성방법은 크게 2가지가 있는데 floating context menu, context action menu 이다. 각 메뉴 생성방법에 대해 알아보자.
Floating Context Menu
화면을 long click 하면 나타나는 방식이다.
@OverridesetContentView(R.layout.activity_main);
registerForContextMenu에 해당 위젯을 등록시킨다.
@Overridepublic void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {menu.add(0, 1, 0, "apple");menu.add(0, 2, 0, "grape");
onCreateContextMenu는 Context 메뉴를 보여줘야 할 시점에 호출된다.
public boolean onContextItemSelected(MenuItem item) {
onContextItemSelected는 메뉴 이벤트 처리함수이다.
Context Action Mode
Context Action Mode를 구현하기 위해서는 View.OnLongClickListener, ActionMode.Callback 인터페이스르 구현해야 한다.
ActionMode 인터페이스를 구현하기 위해서는 아래의 4개의 메소드를 오버라이딩 해야 한다.
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
onCreateActionMode는 startActivity가 호출될 때 호출되는 콜백 메소드
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
onPrepareActionMode는 액션모드를 refresh하는 목적으로 아무것도 하지 않으면 false, 액션 메뉴가 업데이트되면 true 반환
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {return true;return true;
onActionItemClicked는 사용자가 액션 메뉴의 항목을 클릭했을 때 호출
public void onDestroyActionMode(ActionMode mode) {
onDestroyActionMode는 액션 모드를 종료시켰을 때 호출
@Overridepublic boolean onLongClick(View view) {view.setSelected(true);return true;}
리스너를 등록한 위젯에서 LongClick시 ActionMode를 실행시키기 위해 startSupportActionMode를 사용하여 컨텍스트의 액션 모드를 실행한다.
'IT > Android' 카테고리의 다른 글
Popup Menu 생성 (0) | 2017.10.23 |
---|---|
AlertDialog를 이용하여 RatingBar 띄우기 (0) | 2017.10.23 |
Intent (0) | 2017.10.23 |
Action Bar (0) | 2017.10.23 |
Dialog (0) | 2017.10.23 |