所以,我在读
this earlier question,了解如何让我在列表中单击一个项目做一个动作或长按该项目,以切换到ActionMode在那里我可以选择多个项目,并使用动作条做一些这些想法项目.但是,我遇到了
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.当侦听器想要原生Android菜单时,我正在使用ActionBarSherlock的菜单,这也可能导致问题.