Как запустить намерение, передав ему некоторые параметры?

StackOverflow https://stackoverflow.com/questions/2405120

Вопрос

Я хотел бы передать некоторые переменные в конструктор моего ListActivity.

Я начинаю активность с помощью этого кода:

startActivity(new Intent (this, viewContacts.class));

Я хотел бы использовать аналогичный код, но передать конструктору две строки.Как это возможно?

Это было полезно?

Решение

Чтобы передать параметры, вы создаете новое намерение и помещаете карту параметров:

Intent myIntent = new Intent(this, NewActivityClassName.class);
myIntent.putExtra("firstKeyName","FirstKeyValue");
myIntent.putExtra("secondKeyName","SecondKeyValue");
startActivity(myIntent);

Чтобы получить значения параметров внутри запущенной активности, необходимо вызвать метод get[type]Extra() с той же целью:

// getIntent() is a method from the started activity
Intent myIntent = getIntent(); // gets the previously created intent
String firstKeyName = myIntent.getStringExtra("firstKeyName"); // will return "FirstKeyValue"
String secondKeyName= myIntent.getStringExtra("secondKeyName"); // will return "SecondKeyValue"

Если ваши параметры являются целыми числами, вы должны использовать getIntExtra() вместо этого и т. д.Теперь вы можете использовать свои параметры, как обычно.

Другие советы

Я думаю, вам нужно что-то вроде этого:

Intent foo = new Intent(this, viewContacts.class);
foo.putExtra("myFirstKey", "myFirstValue");
foo.putExtra("mySecondKey", "mySecondValue");
startActivity(foo);

или вы можете сначала объединить их в пакет.Для другой стороны существуют соответствующие процедуры getExtra().Видеть тема намерения в руководстве для разработчиков для получения дополнительной информации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top