Передача пакета в startActivity()?
-
12-09-2019 - |
Вопрос
Каков правильный способ передать пакет действию, которое запускается из текущего?Общие свойства?
Решение
У вас есть несколько вариантов:
1) Используйте Сверток из самого Намерение:
Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);
2) Создайте новый пакет
Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);
3) Используйте Путекстра() сокращенный метод выполнения намерения
Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);
Затем, в запущенном действии, вы могли бы прочитать их с помощью:
String value = getIntent().getExtras().getString(key)
ПРИМЕЧАНИЕ: Пакеты имеют методы "get" и "put" для всех примитивных типов, Parcelables и Serializables.Я просто использовал Строки в демонстрационных целях.
Другие советы
Вы можете использовать пакет из Намерения:
Bundle extras = myIntent.getExtras();
extras.put*(info);
Или целую пачку:
myIntent.putExtras(myBundle);
Это то, что ты ищешь?
Передача данных от одного действия к другому в Android
Намерение содержит действие и, при необходимости, дополнительные данные.Данные могут быть переданы другому действию с использованием intent putExtra()
способ.Данные передаются как дополнительные и являются key/value pairs
.Ключ всегда представляет собой Строку.В качестве значения вы можете использовать примитивные типы данных int, float, chars и т.д.Мы также можем пройти Parceable and Serializable
объекты из одного вида деятельности в другой.
Intent intent = new Intent(context, YourActivity.class);
intent.putExtra(KEY, <your value here>);
startActivity(intent);
Извлечение данных пакета из активности Android
Вы можете получить эту информацию с помощью getData()
методы для объекта Intent.Тот Самый Намерение объект может быть извлечен с помощью getIntent()
способ.
Intent intent = getIntent();
if (null != intent) { //Null Checking
String StrData= intent.getStringExtra(KEY);
int NoOfData = intent.getIntExtra(KEY, defaultValue);
boolean booleanData = intent.getBooleanExtra(KEY, defaultValue);
char charData = intent.getCharExtra(KEY, defaultValue);
}
Вы можете передавать значения из одного действия в другое с помощью Пакета.В вашем текущем действии создайте пакет, установите для него определенное значение и передайте этот пакет намерению.
Intent intent = new Intent(this,NewActivity.class);
Bundle bundle = new Bundle();
bundle.putString(key,value);
intent.putExtras(bundle);
startActivity(intent);
Теперь в вашем NewActivity вы можете получить этот пакет и восстановить свою ценность.
Bundle bundle = getArguments();
String value = bundle.getString(key);
Вы также можете передавать данные через intent.В вашем текущем действии установите намерение следующим образом,
Intent intent = new Intent(this,NewActivity.class);
intent.putExtra(key,value);
startActivity(intent);
Теперь в вашем NewActivity вы можете получить это значение из intent следующим образом,
String value = getIntent().getExtras().getString(key);
Напишите, что это за занятие, которым вы занимаетесь:
Intent intent = new Intent(CurrentActivity.this,NextActivity.class);
intent.putExtras("string_name","string_to_pass");
startActivity(intent);
В NextActivity.java
Intent getIntent = getIntent();
//call a TextView object to set the string to
TextView text = (TextView)findViewById(R.id.textview_id);
text.setText(getIntent.getStringExtra("string_name"));
У меня это работает, вы можете попробовать.
вы можете использовать этот код в своем первое упражнение :
Intent i = new Intent(Context, your second activity.class);
i.putExtra("key_value", "your object");
startActivity(i);
и получить объект в второе упражнение :
Intent in = getIntent();
Bundle content = in.getExtras();
// check null
if (content != null) {
String content = content_search.getString("key_value");
}