2014-01-08 5 views
0

나는 GridView을 사용하고 MultiChoiceModeListener으로 설정합니다.버튼을 클릭 할 때 메뉴를 닫는 방법?

GridView에서 항목을 선택하면 onCreateActionModeonActionItemClicked이 다음 코드와 같이 호출됩니다.

public boolean onCreateActionMode(ActionMode mode, Menu menu) { 
    // TODO Auto-generated method stub  
    View v = LayoutInflater.from(getActivity()).inflate(R.layout.actionbar_layout, null); 
    mActionText = (TextView) v.findViewById(R.id.action_text); 
    mActionText.setText(formatString(fileListView.getCheckedItemCount())); 
    mode.setCustomView(v); 
    getActivity().getMenuInflater().inflate(R.menu.action_menu, menu); 

    return true; 
} 

menu에는 내가 선택한 다음 항목과 같은 항목이 몇 개 표시됩니다. 내가 버튼을 클릭하면

The item select from Gridview and show on the menu

는, 내가 새로운 Fragment에 선택이 항목을 전송합니다.

다음 코드는 button

download_button = (ImageButton) view.findViewById(R.id.download_button) ; 

     download_button.setOnClickListener(new Button.OnClickListener() { 

      @Override 
      public void onClick(View v) { 

      Fragment fragment = DownloadPage.newInstance(null, null, null, checkedItems) ; 
      MainActivity.addFragment(FileBrowserFragment.this, fragment); 
      menu.finish(); //can not call menu.finish(); 

    } 

입니다하지만 새로운 fragment로 전환 할 때 menu은 사라지지 않습니다.

버튼을 클릭하고 fragment으로 변경하면 menu을 닫는 방법 ???

답변

0

마무리()를 찾고 있다고 생각하십니까? on ActionMode이 예제를 참조하십시오 :

+0

을하지만? – Wun

+0

작업 표시 줄의 동작 모드가 누락되었을 수 있습니다. 아이디어는 특별한 액션/컨텍스트 메뉴를 부 풀리는 것입니다. 자신 만의 버튼을 사용하려면 왜 액션 모드를 사용해야합니까? –

0

버튼 클릭으로 끝내려면 리스너를 버튼에 등록한 다음 finish() 메소드를 내부에 넣으십시오.

편집

이 시도 : 나는 버튼이 아닌 MenuItem에 의해 완료하려면

@Override 
public boolean onActionItemClicked(ActionMode mode, MenuItem item) { 
    // Respond to clicks on the actions in the CAB 
    switch (item.getItemId()) { 
    case R.id.menu_delete: 


download_button.setOnClickListener(new Button.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      Fragment fragment = DownloadPage.newInstance(null, null, null, checkedItems) ; 
      MainActivity.addFragment(FileBrowserFragment.this, fragment); 

    deleteSelectedItems(); 
      mode.finish(); 

     } 
}); 


     return true; 

} 
+0

죄송합니다 ... 더 설명해 주시겠습니까? – Wun

+0

setonclicklistener를 의미합니까? 나는 그것을 시도, 비트 메뉴를 호출 할 수 없습니다. – Wun

+0

@MartinWun 내 편집 – Dunkey

관련 문제