我想讓一個菜單圖標在第一次點擊時響應兩個不同的動作應該觸發第二次點擊同一菜單上的第一個動作觸發另一個動作時再次點擊它應該撥打的第一個動作,就像動作菜單在Android中的兩種不同動作之間切換
的方法
@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);
}
}
其實我這樣做之間的反覆,但一旦得到它的第二次點擊,它不會切換回第一個功能,即無法再次點擊。任何人都可以幫助你。我最堅持的操作欄菜單
如果你想維護序列1,2,1,2,只需在if(count == 2)中設置_clicks = 0,並將_clicks設置爲類變量,在這裏你也可以用一個變量來管理它 – Pavan