メニューアイコンは、最初のクリックで2つの異なるアクションに反応するようにしようとしています。同じメニューの2回目のクリックで最初のアクションをトリガーする必要があります。ただアクションメニューは、2つの異なるアクションの間で切り替えることができます。
間方法
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int _clicks = 0;
int count;
switch (item.getItemId()) {
case R.id.action_sort:
count = ++_clicks;
if (count == 1){
Cursor cursor2 = databaseManager.queryAllInsects(BugsContract.BugsEntry.COLUMN_FRIENDLYNAME + " COLLATE NOCASE ASC");
mAdapter.swapCursor(cursor2);
return true;
} if (count == 2){
Cursor cursor3 = databaseManager.queryAllInsects(BugsContract.BugsEntry.COLUMN_DANGERLEVEL + " COLLATE NOCASE DESC");
mAdapter.swapCursor(cursor3);
return true;
}
default:
return super.onOptionsItemSelected(item);
}
}
を切り替えるように、私は実際にこれをしなかったが、それは第二のクリックを得れば、それは再びクリックできないすなわちバック最初の関数にトグルしない最初のアクションを呼び出します。いずれかがouを助けることができます。私はほとんどのアクションバーのメニューに固執する
シーケンスを維持したい場合は1,2,1,2 if(count == 2)で_clicks = 0を設定し、_clicksをクラス変数として設定します。ここでも1つの変数で管理することができます – Pavan