在我的Android應用程序中,我想收集有關溢出(三點)操作欄菜單何時(多久)打開和關閉的統計信息(沒有選擇項目)。對於此任務,我已覆蓋Activity
內的onMenuOpened
和onPanelClosed
方法。然而,在所有設備上(Android 4.4,4.2;三星和HTC),我嘗試過這種方法,因此每次菜單打開和關閉時都會觸發這些方法兩次。 這是一個錯誤?是否有另一種方式來監視這個菜單的開啓和關閉?onMenuOpened/onPanel在每個菜單按鈕上關閉雙回調按
5
A
回答
6
你可以試試這個...我已經測試過它....它的作品完美....
@Override
public void onActivityCreated(Bundle savedInstanceState) {
Activity activity = getActivity();
activity.getActionBar().addOnMenuVisibilityListener(new OnMenuVisibilityListener() {
@Override
public void onMenuVisibilityChanged(boolean isVisible) {
// TODO Auto-generated method stub
//you can check the isVisible boolean to check
// if the overFlowMenu is visible or not
}
});
0
發現了一個更好的解決方案
public boolean onPrepareOptionsMenu(Menu menu) {
if (hasWindowFocus()) {
// gets called every time user taps on menu
Log.v(TAG, "onPrepareOptionsMenu - focus");
} else {
// gets called when menu is being initialized
Log.v(TAG, "onPrepareOptionsMenu - NO FOCUS");
}
return super.onPrepareOptionsMenu(menu);
}
您可以收集一些統計信息,在If語句的「焦點」部分。
1
我得到了同樣的問題,你,並找到解決它的一個更簡單的方法:
當第一次進入onMenuOpened(),菜單爲空。菜單尚未準備好。所以,你可以檢查如下
@Override
public boolean onMenuOpened(int featureId, Menu menu){
if(menu!=null){
//log something like firebaseLogEvent("Action", "onMenuOpened");
}
return true;
}
相關問題
- 1. 長按菜單按鈕關閉Android 2.3上的對話框
- 2. 菜單按鈕強制關閉android?
- 3. 在文件菜單中隱藏/關閉關閉按鈕
- 4. 在離子的菜單關閉attritube使返回按鈕消失
- 5. 如何在菜單欄上創建關閉按鈕?
- 6. 如何在Android上點擊按鈕顯示關閉菜單?
- 7. 基礎拆分按鈕有一個關閉按鈕而不是下拉菜單?
- 8. RadContextMenu關閉按鈕單擊
- 9. 關閉按鈕上的容器單擊
- 10. 關閉按鈕上的窗口單擊
- 11. 移動菜單按鈕不關閉上點擊
- 12. 返回菜單按鈕TKinter
- 13. ExtJs關閉按鈕在Tabpanel中的每個選項卡上
- 14. 如何在多個按鈕上單獨切換每個按鈕?
- 15. 連線winform關閉按鈕和我的表單上的按鈕
- 16. 手機導航關閉按鈕不關閉手機上的菜單
- 17. 模態上的多個「關閉」按鈕
- 18. 菜單按鈕
- 19. 關閉按鈕上的鍵盤單擊該關閉片段
- 20. 在OSX菜單欄應用程序中實現「關閉」按鈕
- 21. Bootstrap在下拉菜單中添加關閉按鈕
- 22. 如何在點擊按鈕時關閉菜單?
- 23. 如何在點擊'菜單'內的按鈕時關閉SlideMenu
- 24. App Force在按鈕單擊時關閉
- 25. 在關閉表單後啓用按鈕
- 26. 調用onDestroy()與菜單按鈕,但沒有在關閉應用程序在Android的後退按鈕?
- 27. 按鈕關閉JDialog?
- 28. Firebug關閉按鈕
- 29. JFrame關閉按鈕
- 30. 在關閉按鈕上禁用驗證
@Leo K:請投我的答案,如果u發現它有用 –
請儘量提高你的答案的書寫。此外,評論代碼會有所幫助。 – fedorqui
我打算接受你的回答。但是,我想補充一點,我之前嘗試過這種方法,並且導致了與我在問題中描述的相同的錯誤。但是,我在onCreateOptionsMenu中設置了監聽器,將監聽器設置爲onCreated而不是解決此問題。總之這種方法確實有效。 另外,我不確定你爲什麼建議使用isOverflowMenuOpen字段,但isVisible參數提供的信息並不是真的必要。 –