▩ 안드로이드 인터페이스 컨텍스트 메뉴 3편 ▩
컨텍스트메뉴는 어떤 뷰에서도 가장 많이 사용되는 뷰로 그리드 뷰와 리스뷰입니다. 특정한 항목에 반응을 주는 동작을 하기에 어떤 뷰에도 컨텍스트 메뉴를 사용한답니다. 컨텍스트메뉴는 2가지 모양으로 제공이 됩니다.
* 플로팅 컨텍스트 메뉴: 액티비티 항목을 오래 누르고 있으면 메뉴가 리스트처러 표시됩니다.
* 컨텍스트 액션 모드: 선택된 항목를 누르면 관련된 메뉴가 액션바로 나타납니다.
이번 포스트에서는 플로팅 컨텍스트 메뉴부터 코딩을 작성해보겠습니다.
1) ContextMenu라는 프로젝트 파일을 생성합니다.
2) res/layout/activity_main.xml 코드를 작성합니다.
* 여기서 중요한 부분은 ①에 표시된 android:id="@+id/LinearLayout01" 작성해야만
롱클릭시 ContextMenu가 나타납니다.
3)MainActivity 코드를 작성해 봅시다.
① 텍스트뷰에서 컨텍스트 메뉴를 뿌려주려면 registerForContextMenu() 호출하고 여기에
text를 인수로 전달합니다. 즉,registerForContextMenu(test);
코딩작업입니다.:
protected void onCreate(Bundle savedInstanceState){
Textview text;
protected void onCreate(Bundle savedInstancState){
super.onCreate(savedInstanceState);
text =(TextView) findViewById(R.id.TextView01);
registerForContextMenu(text);
}
② 컨텍스트메뉴 코딩을 작성합니다.
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenu.ContexMenuInfo menuInfo){
super.onCreateContextMenu(Menu, v,menuInfo);
menu.setHeaderTitle("컨텍스트메뉴");
menu.add(0,1,0,"배경색: RED:);
menu.add(0,2,0,"배경색:GREEN");
menu.add(0,3,0,"배경색:BLUE");
}
③ 컨텍스트메뉴가 클릭이 되며 텍스트 뷰의 배경이 선택할수 있습니다.
public boolean onContextItemSelected(MenuItem item){
switch(item.getItemId()){
case 1:
text.setBackgroundColor(Color.RED);
return true;
case 2:
text.setBackgroundColor(Color.GREEN);
return true;
case 3:
text.setBackgroundColor(Color.BLUE);
return true;
default:
return super.onContextItemSelected(item);
}
}
4) 컨텍스메뉴 실행결과입니다.
이번 포스팅에서는 텍스트뷰에 컨텍스트메뉴를 설정하는 코딩을 해봤습니다. 여기서 중요한 코딩은 registerForContextMenu()호출하고 액티비티에 onCreateContextMenu()생성하여 리스트뷰에 전달합니다.