Как сохранить группу пунктов меню открытой при вращении устройства Android - PullRequest
0 голосов
/ 20 мая 2011

Я обработал изменения конфигурации вращения экрана в манифесте android, который работает для диалоговых тем, однако для этих групп меню, которые открываются после выбора пункта меню (в onOptionsItemSelected), все еще закрываются при повороте экрана. Могу ли я обработать это в onConfigurationChanged? Или есть лучший способ? Я приложил код, который открывает подменю.

@Override
public boolean onOptionsItemSelected(MenuItem item) {
   if (item.getGroupId() == R.id.submenu) {
      if (item.getItemId() == this.submenu) {
         return true;
      }
      this.value = item.getItemId();
      item.setChecked(true);
      //do something with value
      return true;
   }
   //...
   return super.onOptionsItemSelected(item);
}

Ответы [ 2 ]

3 голосов
/ 20 мая 2011

вам нужно будет переопределить

    @Override
 public void onConfigurationChanged(Configuration newConfig) {
    // TODO Auto-generated method stub
    super.onConfigurationChanged(newConfig);
 }

Но для этого вы должны указать изменение конфигурации, которое вы будете обрабатывать самостоятельно, добавив в файл манифеста на уровне Activity тег

     android:configChanges=["mcc", "mnc", "locale",
                             "touchscreen", "keyboard", "keyboardHidden",
                             "navigation", "orientation", "screenLayout",
                             "fontScale", "uiMode"]

в onConfigurationChanged сохранить состояние и перезагрузить его в onResume

0 голосов
/ 14 июня 2011

Это оказалось очень простым исправлением.Мне нужно было добавить строку android:configChanges="orientation" к моей активности в AndroidManifest.

...