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

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

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

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

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


person Pentium10    schedule 08.03.2010    source источник
comment
Я думаю, что было бы лучше задать вопрос, как передать параметры в новую активность, а также как получить параметры после их передачи. Я не понимаю, почему нам нужно иметь 2 отдельных вопроса, если вам все равно нужно использовать оба, чтобы действительно иметь какую-либо функциональность. (Вот почему я включил в свой ответ, как получить параметры, см. ниже)   -  person Xitcod13    schedule 18.10.2012


Ответы (3)


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

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

person Xitcod13    schedule 06.08.2012

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

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

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

person RickNotFred    schedule 08.03.2010
comment
Вот пример того, как получить эти значения в запущенной активности: stackoverflow.com/a/4233898/246743 - person Ted Avery; 29.08.2012

putExtra(): этот метод отправляет данные в другое действие, и в параметре мы должны передать пару ключ-значение.

Синтаксис: intent.putExtra("key", value);

Eg: intent.putExtra("full_name", "Vishnu Sivan");

Intent intent=getIntent(): он получает намерение от предыдущего действия.

fullname = intent.getStringExtra(“full_name”): эта строка получает строку из предыдущего действия, и в параметре мы должны передать ключ, который мы упомянули в предыдущем действии.

Образец кода:

Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.putExtra("firstName", "Vishnu");
intent.putExtra("lastName", "Sivan");
startActivity(intent);
person Codemaker    schedule 15.10.2020