Как запустить намерение, передав ему некоторые параметры?
-
18-09-2019 - |
Вопрос
Я хотел бы передать некоторые переменные в конструктор моего 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().Видеть тема намерения в руководстве для разработчиков для получения дополнительной информации.