2016-08-03 3 views
0

"DELETE"라는 설정이있는 상황 별 작업 표시 줄이 있습니다. 해당 버튼을 누르면 CAB 메뉴가 사라지게됩니다.어떻게 안드로이드에서 메뉴를 "수축"합니까?

   class MyActionModeCallBack implements android.view.ActionMode.Callback { 
        @Override 
        public boolean onCreateActionMode(android.view.ActionMode actionMode, Menu menu) { 
         actionMode.getMenuInflater().inflate(R.menu.event_menu, menu); 
         return true; 
        } 
        @Override 
        public boolean onPrepareActionMode(android.view.ActionMode actionMode, Menu menu) { 
         return false; 
        } 
        @Override 
        public boolean onActionItemClicked(android.view.ActionMode actionMode, MenuItem menuItem) { 
         int id = menuItem.getItemId(); 

         if (id == R.id.delete) { 
              ******* 
          _root.removeView(view); 

          // This is where I want to remove the CAB menu 
              ******* 
         } 
         return false; 
        } 
        @Override 
        public void onDestroyActionMode(android.view.ActionMode actionMode) { 
         ((RelativeLayout)view).removeAllViews(); 
         view.setBackgroundColor(0xFF00FF00); 
         view.setTag(R.string.viewSelected, "0"); 
        } 
       } 

내가 바로 _root.removeView(view);onDestroyActionMode()를 호출에 대해 생각했다,하지만 난에 전달하는 것을 인수 모른다.

어떤 제안이 평가됩니다, 감사합니다! 당신이 선택되고있는 항목을 숨기려고하는 경우

답변

0

, 당신은 당신이 메뉴에서 모든 항목을 제거하려면, 당신은에

optionsMenu.clear(); 

를 호출 할 수 있습니다, 또는

menuItem.setVisible(false); 

를 호출 할 수 있습니다 onActionItemClicked() 메소드. 다음과 같이 당신은 당신의 onCreateOptionsMenu 방법의 필드에 메뉴를 저장할 수 있습니다

@Override 
public boolean onCreateOptionsMenu(final Menu menu) { 
    optionsMenu = menu 
} 
0

전화 actionMode.finish()합니다. 그러면 onDestroyActionMode() 콜백이 호출됩니다.