반응형
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
반응형
SMALL

▩ 안드로이드 인터페이스

옵션메뉴(OptionMenu) 만들어봅니다. 2편






옵션메뉴을 만드는 순서는 다음과 같습니다. 


1) OptionMenu  프로젝트를 파일을 생성합니다. 

2) res/drawable에 그림파일을 3개 저장해 둡니다.

3) res/menu 아래 menu.xml파일을 만듭니다. 

   * 만드는 방식은 옵션메뉴 1편에 자세이 나옵니다. 


  <item

     android:id="@+id/apple"

     android:icon="@drawable/iamge"

     android:title="사과"/>

  <item

     android:id="@+id/grape"

     android:icon="@drawable/image2"

     android:title="포도"/>

 <item

     android:id ="@+id/banana"

     android:icon="@drawable/image3"

     android:title="바나나"/>


인천직업능력교육원:배움이


4) Optionmenu.java 파일을 코드를 다음과 같이 작성합니다.


   public boolean onCreateOptionsMenu(Menu menu)[

       MenuInflater inflater = getMenuInfalter();

       inflater.infalte(R.menu.menu,menu);

       return true;

    }


  public boolean onOptionsItemSelected(MenuItem item){

         switch(item.getItemId()){

         case R.id.apple:

               Toast.makeText(this,"사과",Toast.LENGTH_SHORT).show();

               return true;

         case R.id.grape:

               Toast.makeText(this,"포도",Toast.LENGTH_SHORT).show();

               return true;

         case R.id.banana:

               Toast.makeText(this,"바나나",Toast.LENGTH_SHORT).show();

               return true;

         default;

              return super.onPtionsItemSelected(item);

        }

     }

인천직업능력교육원:배움짱


① 코드 : 액티비티의 메소드 OnCreateOptionsMenu()를 재정의 합니다. 이 메소드는 매개변수로  menu 객체로 전달되는데, 이것은 비어있는 메뉴입니다. 여기에다  res/menu/menu.xml로

작성된 메뉴는 옵션 메뉴ㅏ 컨텍스트 메뉴에서 불러들여서 사용될 수 있습니다.프로그밍 객체로 변환한다는 뜻입니다.

② 코드 : R.id.apple: , R.id.grape:,  R.id.banana:  성공적으로 메뉴 항목을 처리했으면 true값을 반환하여 실행되었다는 뜻입니다.

만약 메뉴 항목을 실행하지 못했다면 부모클래스인  onOptionsItemSelected()호출하여야 하는데 아래 코드로 작성하시며 됩니다.

 default:

       return super.onOptionsItemSelected(item); 이벤트 상위 클래스로 전달됩니다.


5) 실행결과입니다.


인천직업능력교육원:배움이


옵션바를 클릭하며 사과,포도,바나나 메뉴화면이 나타납니다. 각 항목 사과, 포도, 바나나 클릭하면 아래 사과, 포도,바나나 항목 글이 뿌려짐니다. 

반응형
LIST

+ Recent posts