2013-09-25 9 views
0

У меня есть ListFragment, который открывается Activity при нажатии. Теперь моя проблема в том, что мой слушатель потерян, когда экран повернут. События click не реагируют. Я пробовал android:configChanges, он исправляет проблему слушателя, но макет всей деятельности выглядит странно. Какие-либо возможные решения для установки слушателя снова при изменении конфигурации?android-Listener потерял при изменении ориентации экрана

+1

Можете ли вы опубликовать код, чтобы лучше описать вашу проблему? – Egor

ответ

0

Лучшее решение:. Лучший способ справиться с этой проблемой с помощью onSaveInstanceState() эта ссылка Handling Runtime Changes

№ 2: Вы можете обнаружить изменения, а затем обработать его с помощью метода ниже:

public void onConfigurationChanged(Configuration config) { 
super.onConfigurationChanged(config); 

// Checks the orientation 
if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
    Toast.makeText(this, "landscape mode", Toast.LENGTH_SHORT).show(); 
} else if (config.orientation == Configuration.ORIENTATION_PORTRAIT){ 
    Toast.makeText(this, "portrait mode", Toast.LENGTH_SHORT).show(); 
    } 
} 

вынужденное решение: если вы не хотите, чтобы переработать жизненный цикл активности на изменение ориентации, то вы можете добавить это в манифесте:

<activity android:name=".YourActivity" 
     android:configChanges="orientation|keyboardHidden" 
     android:label="@string/app_name"> 

Последнее самое худшее решение, но работает. Поскольку мое предложение никогда не использует последний, потому что вы не сможете делать какие-либо вещи в будущем. но для экстренного решения это хорошо.

Смежные вопросы