Каков правильный способ передать пакет для активности, запускаемой с текущего? Общие свойства?Передача связки на startActivity()?
ответ
У вас есть несколько вариантов:
1) Используйте Bundle из Intent:
Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);
2) Создайте новый Bundle
Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);
3) Используйте метод putExtra() ярлыка от намерения
Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);
Затем, в запущенной деятельности, вы бы читать их с помощью:
String value = getIntent().getExtras().getString(key)
ПРИМЕЧАНИЕ: Связки имеют «получить» и «поставить» методы для всех примитивных типов, Parcelables и Serializables , Я просто использовал Strings для демонстрационных целей.
Вы можете использовать Bundle от Intent:
Bundle extras = myIntent.getExtras();
extras.put*(info);
Или весь комплект:
myIntent.putExtras(myBundle);
Это то, что вы ищете?
И от полученного намерения вы звоните getIntent(). GetExtras() .get *(), чтобы получить то, что было ранее сохранено. – yanchenko
Передача данных от одного активности в операцию в андроид
намерение содержит действие и, необязательно, дополнительные данные. Данные могут быть переданы другим действиям с использованием метода метода 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);
Получение расслоение данных от андроида деятельности
Вы можете получить информацию, используя getData()
методы Намерение объекта. Объект Цель можно получить через 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);
}
Вы можете передавать значения из одной активности в другую деятельность с использованием Bundle. В вашей текущей деятельности создайте пакет и установите пакет для определенного значения и передайте этот пакет в намерение.
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 = new Intent(this,NewActivity.class);
intent.putExtra(key,value);
startActivity(intent);
Теперь в вашем NewActivity, вы можете получить это значение от намерения, как это,
String value = getIntent().getExtras().getString(key);
отличный мини-путеводитель для людей. –
@fiXedd, Большое вам спасибо –
@MicroR, нет разницы. –