MultiChoiceModeListener

MultiChoiceModeListener

因此,我正在阅读this earlier question,以获取有关如何允许我单击列表中的一项以执行一项操作或长按该项以切换到ActionMode的想法,在其中我可以选择多个项并使用ActionBar对那些项执行某些操作项目。但是,我对this answer遇到问题。具体来说,我正在将其实现到SherlockListFragment中(使用ActionBarSherlock)。但是,当我声明一个新的MultiChoiceModeListener时,Eclipse抛出了一些编译错误。

Description Resource    Path    Location    Type
Cannot override the final method from SherlockListFragment  DateTimeListFragment.java   /path/to/my/project line 127    Java Problem
The method inflate(int, Menu) in the type MenuInflater is not applicable for the arguments (int, Menu)  DateTimeListFragment.java   /path/to/my/project line 125    Java Problem

当我删除MultiChoiceModeListener时,这些消失了。我不知道是什么原因引起的,因为我知道并没有发生任何奇怪的事情。
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
    {
        //super.onCreateOptionsMenu(menu, inflater);
        inflater.inflate(R.menu.alarmsmenu, menu); //line 125
    }
    public boolean onOptionsItemSelected(MenuItem Item) //line 127
    {
        switch(Item.getItemId())
        {
        case R.id.addAlarm:
            addAlarm();
            return true;
        case R.id.editAlarms:
            return true;
        default:
            return super.onOptionsItemSelected(Item);
        }
    }

我很困惑为什么实现MultiChoiceModeListener意味着我无法覆盖OnOptionsItemSelected?

编辑:为了帮助澄清,这是我的进口商品。
import java.util.Calendar;
import java.util.GregorianCalendar;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.*;
import android.support.v4.content.Loader;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView.MultiChoiceModeListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.DatePicker;
import android.widget.ListView;
import android.widget.TimePicker;

import com.actionbarsherlock.app.SherlockListFragment;
import com.actionbarsherlock.app.ActionBar; //Yes, it's unused...
import com.actionbarsherlock.view.*;
import com.commonsware.cwac.loaderex.acl.*;

最佳答案

作为a kind person from reddit has notified me,显然ActionBarSherlock当前不支持MultiChoiceModeListener。当监听器想要 native Android菜单时,我正在使用ActionBarSherlock的菜单,这一事实也可能导致了该问题。

10-07 15:43