首页 > 解决方案 > 在 AbsListView.MultiChoiceModeListener 中覆盖 onItemCheckedStateChanged()

问题描述

这是代码:

    mListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
    mListView.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener(){

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

        @Override
        private boolean onCreateActionMode(ActionMode mode, Menu menu) {
            MenuInflater inflater = mode.getMenuInflater();
            inflater.inflate(R.menu.cam_menu, menu);
            return true;
        }

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

        @Override
        public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
            switch (item.getItemId()) {
                case R.id.menu_item_delete_reminder:
                    for (int nC = mCursorAdapter.getCount() - 1; nC >= 0; nC--) {
                        if (mListView.isItemChecked(nC)) {
                            mDbAdapter.deleteReminderById(getIdFromPosition(nC));
                        }
                    }
                    mode.finish();
                    mCursorAdapter.changeCursor(mDbAdapter.fetchAllReminders());
                    return true;
            }
            return false;
        }

        @Override
        public void onDestroyActionMode(ActionMode mode) {
        }
    });
}

这是 Gerber 和 Craig 的“Learn Android Studio”一书中的一个示例。我收到一个错误:不是抽象的,并且不会覆盖 MultiChoiceModeListener 中的抽象方法 onItemCheckedStateChanged(ActionMode,int,long,boolean)。

标签: javaandroid

解决方案


Alt + Enter(在 Android Studio 中)导入 import android.support.v7.view.ActionMode; 我将其更改为 android.view.ActionMode

在这里找到信息: https ://forums.bignerdranch.com/t/multichoicemodellistener-problem/6106


推荐阅读