Как запустить Intent, передав ему некоторые параметры?
Я хотел бы передать некоторые переменные в конструкторе моей ListActivity
Я начинаю деятельность через этот код:
startActivity(new Intent (this, viewContacts.class));
Я хотел бы использовать подобный код, но передать две строки в конструктор. Как это возможно?
2 ответа
Чтобы передать параметры, вы создаете новое намерение и помещаете карту параметров:
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() существуют для другой стороны. Смотрите тему намерений в руководстве разработчика для получения дополнительной информации.
putExtra(): этот метод отправляет данные другому действию, а в параметре мы должны передать пару ключ-значение.
Синтаксис:
intent.putExtra("key", value);
Например:
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);