したがって、リスト内のアイテムをクリックして1つのアクションを実行するか、そのアイテムを長押しして複数のアイテムを選択できるActionModeに切り替える方法については、this earlier questionを読んでいました。 ActionBarを使ってそれらのアイテムに何かをさせてください。ただし、this answerに関する問題が発生しています。具体的には、これをSherlockListFragment(ActionBarSherlockを使用)に実装しています。しかし、新しいMultiChoiceModeListenerを宣言すると、Eclipseはいくつかのコンパイルエラーを投げます。SherlockListFragmentの問題を引き起こすMultiChoiceModeListener
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をオーバーライドできないのはなぜですか?
EDIT:明確にするために、ここに私の輸入品です。私はActionBarSherlock demo projectを輸入しようとしてActionItem例が動作するかどうかを確認したい、また
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
:
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.*;
これを試すhttp://stackoverflow.com/questions/14737519/implementing-multi-selection-and-contextual-actionmode-in-actionbarsherlock/14737520#14737520 –