2009-04-20 1 views

ответ

359

У вас есть несколько вариантов:

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 для демонстрационных целей.

+3

отличный мини-путеводитель для людей. –

+1

@fiXedd, Большое вам спасибо –

+0

@MicroR, нет разницы. –

17

Вы можете использовать Bundle от Intent:

Bundle extras = myIntent.getExtras(); 
extras.put*(info); 

Или весь комплект:

myIntent.putExtras(myBundle); 

Это то, что вы ищете?

+1

И от полученного намерения вы звоните getIntent(). GetExtras() .get *(), чтобы получить то, что было ранее сохранено. – yanchenko

10

Передача данных от одного активности в операцию в андроид

намерение содержит действие и, необязательно, дополнительные данные. Данные могут быть переданы другим действиям с использованием метода метода 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); 
    } 
0

Вы можете передавать значения из одной активности в другую деятельность с использованием 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);