Активность просочилась в окно при изменении ориентации с открытым подменю - PullRequest
4 голосов
/ 05 сентября 2011

У меня проблема с моим приложением для 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 исчезает, конечно, после воссоздания, вызванного изменением ориентации. Я могу открыть меню опций, но не SubMenu. Можно ли смоделировать щелчок по первому пункту меню?

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

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

1 Ответ

0 голосов
/ 22 мая 2012

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

<activity android:configChanges="orientation"
 ... />
...