Как запустить Intent, передав ему некоторые параметры? - PullRequest
97 голосов
/ 09 марта 2010

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

Я начинаю деятельность через этот код:

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

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

Ответы [ 2 ]

227 голосов
/ 06 августа 2012

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

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() и т. Д. Теперь вы можете использовать ваши параметры, как обычно.

41 голосов
/ 09 марта 2010

Я думаю, вы хотите что-то вроде этого:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...