編輯:關於Android編程
前言
嵌套的二級Fragment無法接收onCreateOptionsMenu事件的問題,設置了setHasOptionsMenu也不管用。
正文
補充說明:
如果通過緩存Fragment手動調用二級Fragment,可能會出現莫名其妙的問題,比如更多Menu不顯示。
解決辦法:
在一級Fragment中添加Menu,可以在一級onOptionsItemSelected中手動調用二級的此方法來處理相關事件。
示例代碼:
@Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { switch (getSelectedPosition()) { case 1: inflater.inflate(R.menu.menu1, menu); break; case 2: inflater.inflate(R.menu.menu2, menu); break; case 0: default: inflater.inflate(R.menu.menu3, menu); break; } } @Override public boolean onOptionsItemSelected(MenuItem item) { Fragment fragment = getFragmentByPosition(getSelectedPosition()); if (fragment != null) fragment.onOptionsItemSelected(item); return super.onOptionsItemSelected(item); }
代碼說明:
示例代碼是一級Fragment,getFragmentByPosition返回的是二級Fragment。
以上就是Android 解決 Fragment無法接收onCreateOptionsMenu事件的問題,希望能幫助Android開發的朋友解決類似問題。
一、前言好久沒更新博客了,最近一直在忙,找實習,整理畢業資料,找房子等等。現在大部分基本忙完了,這幾天在公司寫的一些自定義控件,打算發出來與大家分享。 首先看看
一般來說,Android開發者最初開發都是使用的Eclipse,到後面會用Android Studio工具來開發,使用前一般要做一些簡單設置。以下是Studio中常見的設
1.簡介其實這個效果幾天之前就寫了,但是一直沒有更新博客,本來想著把芝麻分雷達圖也做好再發博客的,然後今天看到鴻洋的微信公眾號有朋友發了芝麻分的雷達圖,所以就算了,算是一
一個應用只有一個線程在默認情況下,更確切的講一個進程中只有一個線程,這跟其他語言,比如C/C++,Java等是一致。也就是說在Android應用程序裡面一個進程只有一個線