2014-01-08 8 views
0

Я использую GridView и устанавливаю MultiChoiceModeListener.Как закрыть меню, когда я нажимаю кнопку?

Когда я выберу элемент из GridView, он назовет onCreateActionMode и onActionItemClicked, как следующий код.

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 не исчез.

Как закрыть menu, когда я нажимаю кнопку и переключаюсь на новый fragment ???

ответ

0

Думаю, что вы ищете финиш(); на ActionMode увидеть этот пример:

@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: 
      deleteSelectedItems(); 
      mode.finish(); 
      return true; 
     } 
    } 
+0

Но если я хочу, чтобы закончить с помощью кнопки не MenuItem? – Wun

+0

Думаю, вам может не хватать точки действия режима действия. Идея заключается в том, что вы раздуваете специальное действие/контекстное меню. Если вы хотите использовать свою собственную кнопку, зачем вообще использовать режим действия? –

0

Если вы хотите, чтобы закончить нажатие кнопки, зарегистрировать слушатель вашей кнопки, а затем положить метод() внутри, что отделка.

EDIT

Попробуйте это:

@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

Смежные вопросы