7

私のアプリでは、公式ドキュメントで説明されているようにツールバーを使用しています (v7 appcompat サポート ライブラリTheme.Appcompat.Light.NoActionBar, android.support.v7.widget.Toolbar, setSupportActionBar(myToolbar)): http://developer.android.com/training/appbar/index.html

ExpandableListViewアイテムを長押ししたときにコンテキスト アクション モードを実装したいと考えています。これを達成するために、次を使用します setMultiChoiceModeListener(new MultiChoiceModeListener())。ただし、この方法では、アクション モード バーが画面の上部に表示され、ツールバーが押し下げられます (システムがサポート アクション モードではなく、通常のアクション モードを使用しているためだと思います)。ツールバーに表示させたい。

私はこの解決策を試しました:

windowActionBarOverlay = true

しかし、うまくいきません。

4

3 に答える 3

0

このコードをアダプターで使用できます

 public boolean multiSelect = false;
private ArrayList<String> selectedItems = new ArrayList<>();
ActionMode modee;
private ActionMode.Callback actionModeCallbacks = new ActionMode.Callback() {
    @Override
    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
        multiSelect = true;
        menu.add("Delete");
        modee=mode;
        return true;
    }

    @Override
    public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
        return false;
    }

    @Override
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
        for (int i = 0; i < selectedItems.size(); i++) {
            for (int j = 0; j < sizeOfdata; j++) {
                if (data.get(j).getFull_name() == selectedItems.get(i)) {
                    data.remove(j);
                    deleteContact(selectedItems.get(i));
                     //or your code 
                    break;
                } else {
                    // continue;
                }
            }
        }
        mode.finish();
        return true;
    }

    @Override
    public void onDestroyActionMode(ActionMode mode) {
        multiSelect = false;
        selectedItems.clear();
        notifyDataSetChanged();
    }
};
于 2019-01-21T14:37:33.047 に答える