在AbsListView.MultiChoiceModeListener中重写onItemCheckedStateChanged()

时间:2018-06-26 12:18:14

标签: java android

这是代码:

    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所著的“学习Android Studio”一书的示例。我收到一个错误:不是抽象的,并且没有覆盖MultiChoiceModeListener中的抽象方法onItemCheckedStateChanged(ActionMode,int,long,boolean)。

1 个答案:

答案 0 :(得分:1)

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

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