Я начинаю деятельность с startActivityForResult(), но после изменения orientatikn, и я возвращаюсь к методу onActivityResult(), код запроса не тот же. Я бы хотел использовать другую компоновку, если ориентация экрана находится в ландшафтном режиме. Я пробовал в манифесте конфигурацию с параметрами ориентации и screenSize, но если я использую это, макет не будет изменен на макет ландшафта. Я начал свою деятельность с requestCode = 0, но после изменения ориентации я увидел, что requestCode = 66357 или что-то в этом роде.Как справиться с изменением ориентации деятельности, чтобы не воссоздать активность?
ответ
вы можете объявить, что ваша деятельность обрабатывает само изменение конфигурации, которая не позволяет системе перезагружать деятельности.
В ваших AndriodMainfest.xml определяют configChanges
<activity android:name=".ResultActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name">
Затем в ResultActivity.java (что вы звоните, чтобы получить результат) определяют onConfigurationChanged()
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
}
}
официальные link
Создайте два типа папок. «макет-земля» и «макет-порт». поместите требуемый xml в каталог с тем же именем.
Я сделал это, но я не видел, чтобы был выбран макет земли. – just
Объявление изменений конфигурации в манифесте не требуется. Вы можете сохранить его как «макет» по умолчанию и другую «макет-земля». – rKrishna
Но после изменения ориентации и завершения действия она вернется к методу onActivityResult() с помощью другого requestCode. Как я должен справиться с этим? – just
У вас есть два варианта:
A) Установите приложение не вращается.
B) Или признать, что мир не совершен и модифицировать приложение для обработки изменения конфигурации
Предоставить код, а не предложение, и это скорее комментарий –
Вы используете фрагмент или диалог? – makata
Простое мероприятие. – just
Когда ориентация изменяется, активность воссоздается. Уже не то же самое! Таким образом, вам нужно передать requestCode onPause() или Destroy() с помощью намерения. – makata