반응형
SMALL

▩ 안드로이드 인터페이스 컨텍스트 메뉴 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()생성하여 리스트뷰에 전달합니다.


반응형
LIST

+ Recent posts