РЕДАКТИРОВАТЬ: Переместил то, что на самом деле хочет просящий.
Если вы хотите передать данные в Activity при создании, вызовите версию Intent .putExtra()
с намерением, чтоиспользуется в startActivity()
.Затем вы можете использовать getIntent().getStringExtra()
, чтобы (например) получить дополнительную строку в упражнении.
Скажем, у вас есть фрагмент строковых данных в вашем первом упражнении под названием myString
.
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra(EXTRA_NAME_CONSTANT, myString);
startActivity(intent);
Теперь в вашем новом действии в onCreate
вы бы сделали:
String myString = this.getIntent()
.getStringExtra(EXTRA_NAME_CONSTANT, "default return value here");
Несколько замечаний:
- Для этого
EXTRA_NAME_CONSTANT
я хочу создать строкуконстанта в форме "your.package.name.SomeString", например "com.example.MyString".Лично я бы даже использовал ресурс (доступный в форме getString(R.string.extra_my_string)
) для имени экстра.Они рекомендуют префиксировать его именем вашего пакета. - Вы можете помещать и получать много типов данных из строк в массивы даже в сериализуемые данные.
Вместо созданияОтдельное действие для разных ориентаций макетов: рассмотрите использование квалификаторов ресурсов для предоставления альтернативных макетов .
Подводя итог, сделайте два макета в структуре, например:
/res/layout/yourlayout.xml
/res/layout-land/yourlayout.xml
Где обаФайлы XML названы одинаково.Затем создайте макет портрета по умолчанию в одном и альбомную версию в другом.
Когда вы надуваете макет в onCreate
(и когда это происходит автоматически при изменении макета во время выполнения), он выберет правильныймакет для вас.