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

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

Я начинаю работу через этот код:

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

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

Ответ 1

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

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"

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

Ответ 2

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

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

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