0. 環境
[Windows] 7
[Java] 1.8
[Android] 5.1.1
[Android API] 26
1. 問題
build.gradleで下記の値を上げたところ、onPrepareActionModeが実行されなくなってました。
onPrepareActionModeは、ListViewのロングタップ時にアクションモードへ切り替えた後、アクションバー内のあるアイコンを隠す処理で使っていたので、困りました。
compileSdkVersion : 21 → 26
buildToolsVersion : 21.1.2 → 26.0.2
2. 対策
試しに下記 (A) にあった処理を (B) へ移してみたところ、思った通りの動きをしてくれました。
うーん、前はダメだったからonPrepareActionModeを使ったんだけどなあ。。
他にネットで情報を見つけられなかったので、一旦これにしておくか。
list1 = findViewById(R.id.listView1); list1.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() { @Override public boolean onPrepareActionMode(ActionMode mode, Menu menu) { //(A) //MenuItem menuItem1 = menu.findItem(R.id.menu_item1); //menuItem1.setVisible(false); return false; } @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_action_mode, menu); //(B) MenuItem menuItem1 = menu.findItem(R.id.menu_item1); menuItem1.setVisible(false); return true; }