2012-01-12 3 views
5

У меня есть активность, в которой есть счетчик. так как для портретной и альбомной ориентации У меня есть другой макет, так что я меняюсь макет в onConfigurationChanged методеОриентация ориентации экрана Android для прядильщика

@Override 
    public void onConfigurationChanged(Configuration conf) { 
     super.onConfigurationChanged(conf); 
     setContentView(R.layout.layout); 
     initUI(); 
    } 

, но проблема в том, когда я изменить ориентацию, моя вертушка воссоздана так, если вертушка работает в портретном режиме он подобраться в ландшафтный режим. Моим требованием является: если он открыт в любом режиме, он должен быть открыт после изменения ориентации. Скажите, пожалуйста, дайте мне знать, как справиться с этой ситуацией.

+0

Я не пробовал, но есть два метода osavestate и восстановить что-то подобное в spinner.Once попробовать их – Sameer

+0

Я думаю, что вы получите решение вашей проблемы здесь ..... Http: // разработчик .android.com/resources/articles/faster-screen-orientation-change.html – himanshu

ответ

0

попробовать Прядильщиков performClick() метод

0

Чтобы остановить повторное создание вашего Spinner вы можете добавить это в вашем файле манифеста

<activity android:name=".Activity_name" 
      android:configChanges="orientation|keyboardHidden"> 

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

@Override 
    public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 
     if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){ 
      setContentView(R.layout.login_landscape); 
     } 
     else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { 
      setContentView(R.layout.login);   
     } 
    } 

для получения дополнительной информации вы можете проверить мой ответ here.

+0

Я делаю то же самое, но все же вам нужно установить значение spinner после настройки макета, иначе spinner будет пустым. –

+0

Попробуйте приведенный выше код, он будет поддерживать состояние. Поскольку активность не воссоздана. –

+0

Я попробовал вышеуказанный код. я вижу пробел в значении счетчика, потому что у меня есть spinner в режиме portait, и у меня есть еще один счетчик с одинаковым идентификатором в ландшафтном режиме. –

0

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

android:configChanges="orientation|keyboardHidden" 
Смежные вопросы