Окно активности просочилось при изменении ориентации с открытым подменю

У меня проблема с моим приложением для Android. Активность имеет меню опций.

Меню выглядит так:

<menu
    xmlns:android="http://schemas.android.com/apk/res/android">
  <item
    android:title="@string/tx_1" 
    android:id="@+id/menu_1"        
    >
    <menu>
      <group android:checkableBehavior="single">
        <item 
          android:title="@string/tx_2" 
          android:id="@+id/menu_2"      
          />
        <item 
          android:title="@string/tx_3" 
          android:id="@+id/menu_3"      
          />
      </group>          
      <item 
        android:title="@string/tx_4" 
        android:id="@+id/menu_4"  
        android:checkable="true"    
        />
      </menu>
    </item>
  <item
    android:title="@string/tx_5"
    android:id="@+id/menu_5"
    />      
</menu>

Итак, есть SubMenu, когда вы нажимаете на первый элемент. Это похоже на диалог, но я не могу найти способ получить ссылку на этот диалог. Когда я поворачиваю устройство, происходит утечка окна-ошибка. Итак, похоже, что Android не закрывает SubMenu. Есть ли способ предотвратить эту ошибку? Подменю исчезает, конечно, после воссоздания, вызванного изменением ориентации. Я могу снова открыть меню опций, но не SubMenu. Можно ли имитировать щелчок по первому пункту меню?

Заранее спасибо!

И, кстати, я не хочу обходить ротацию изменением манифеста.


person hicks    schedule 05.09.2011    source источник
comment
Вы когда-нибудь находили решение этой проблемы? Я тоже с этим борюсь. Я попытался получить ссылку на SubMenu во время onMenuItemSelected и вызвать subMenu.close() во время действия onPause, но по какой-то причине это не решает проблему.   -  person Robert Nekic    schedule 13.03.2012
comment
У меня точно такая же проблема. Я бы заплатил, чтобы найти исправление.   -  person Rémi    schedule 22.07.2012


Ответы (1)


Простым решением было бы предотвратить уничтожение экземпляра Activity при изменении ориентации приложения. Вы можете сделать это, объявив следующее в своем манифесте:

<activity android:configChanges="orientation"
 ... />
person Taranfx    schedule 22.05.2012