Question

I use GridView and implement multiple select.

When I select the multiple item from GridView , it will show the menu on the top of screen.

But I don't want the menu show on the top .

I set the GridView to CHOICE_MODE_MULTIPLE_MODAL and implement thr MultiChoiceModeListener of class.

Does there has any method can hide the menu when select the multiple item ?

The code of class is like the following

public class LocalFileBrowserFragment extends Fragment implements MultiChoiceModeListener

The code of setup the GridView is like the following:

private GridView fileListView;
fileListView = (GridView) view.findViewById(R.id.browserList) ;
fileListView.setChoiceMode(GridView.CHOICE_MODE_MULTIPLE_MODAL);
fileListView.setMultiChoiceModeListener((MultiChoiceModeListener)this);
fileListView.setNumColumns(4);

And the code of MultiChoiceModeListener in GridView is like the following:

@Override
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
        // TODO Auto-generated method stub

        return true;
    }

    @Override
    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
        // TODO Auto-generated method stub

        Log.i(TAG, "onCreateActionMode");
        return true;
    }

    @Override
    public void onDestroyActionMode(ActionMode mode) {
        // TODO Auto-generated method stub
        for (int i = 0; i < fileListView.getCount(); i++) {
            fileListView.setItemChecked(i, false);
            mSelectMap.clear();
        }
        mFileListAdapter.notifyDataSetChanged();
    }

    @Override
    public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
        // TODO Auto-generated method stub
        //Log.i(TAG, "onPrepareActionMode");
        return true;
    }

    @Override
    public void onItemCheckedStateChanged(ActionMode mode, int position,
            long id, boolean checked) {
        // TODO Auto-generated method stub

        mSelectMap.put(position, checked);
        mFileListAdapter.notifyDataSetChanged();
    }

I set the GridView to CHOICE_MODE_MULTIPLE_MODAL and implement thr MultiChoiceModeListener of class.

I don't want the menu show on the top.

Does there has any method can hide the menu when select the multiple item ?

Was it helpful?

Solution

I solved the problem, I used the following to show the bar.

bar = getActivity().getActionBar();
bar.show();

OTHER TIPS

Save ActionMode as a field of your MultiChoiceModeListener in onCreateActionMode

       @Override
        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
            theActionMode = mode;
            return true;
        }

Then finish the ActionMode in onItemCheckedStateChanged

    public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {

        // Your CheckedChange Code......

        theActionMode.finish();
    }
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top