2009-04-20 21 views

Odpowiedz

359

Masz kilka opcji:

1) Za pomocą Bundle z Intent:

Intent mIntent = new Intent(this, Example.class); 
Bundle extras = mIntent.getExtras(); 
extras.putString(key, value); 

2) Utwórz nowy pakiet

Intent mIntent = new Intent(this, Example.class); 
Bundle mBundle = new Bundle(); 
mBundle.putString(key, value); 
mIntent.putExtras(mBundle); 

3) stosowanie metody putExtra() skrótu intencji

Intent mIntent = new Intent(this, Example.class); 
mIntent.putExtra(key, value); 


Następnie w rozpoczętej działalności, byś je odczytać poprzez:

String value = getIntent().getExtras().getString(key) 

UWAGA: Paczki mają "get" i "put" metody dla wszystkich typów pierwotnych, Parcelables i Serializables . Użyłem tylko Struny do celów demonstracyjnych.

+3

świetny mini-przewodnik dla ludzi do zrozumienia. –

+1

@fiXedd, bardzo dziękuję –

+0

@MicroR, nie ma różnicy. –

17

Można użyć Bundle od Intencyjny:

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

lub cały pakiet:

myIntent.putExtras(myBundle); 

Czy tego szukasz?

+1

A z otrzymanej zamiarem wywołania getIntent(). GetExtras() .get *(), aby uzyskać to, co wcześniej było przechowywane. – yanchenko

10

Przekazywanie danych pomiędzy aktywności z aktywnością android

zamiarem zawiera działanie i ewentualnie dodatkowe dane. Dane można przekazać do innej aktywności przy użyciu metody intent putExtra(). Dane są przekazywane jako dodatki i są key/value pairs. Klucz jest zawsze ciągiem. Jako wartość można użyć prymitywnych typów danych int, float, chars, itp. Możemy również przekazać obiekty z jednej aktywności do drugiej.

Intent intent = new Intent(context, YourActivity.class); 
intent.putExtra(KEY, <your value here>); 
startActivity(intent); 

Odzyskiwanie danych wiązki z działalności android

można pobrać informacji z wykorzystaniem getData() metod o zamiarze obiektu. Obiekt Intent można pobrać za pomocą metody.

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

Możesz przekazywać wartości z jednego działania do innego działania przy użyciu Pakietu. W bieżącej działalności utwórz pakiet i ustaw pakiet dla określonej wartości, a następnie przekaż ten pakiet do zamiaru.

Intent intent = new Intent(this,NewActivity.class); 
Bundle bundle = new Bundle(); 
bundle.putString(key,value); 
intent.putExtras(bundle); 
startActivity(intent); 

Teraz w swojej NewActivity możesz zdobyć ten pakiet i wykorzystać swoją wartość.

Bundle bundle = getArguments(); 
String value = bundle.getString(key); 

Można również przekazywać dane za pośrednictwem intencji. W swojej bieżącej działalności, określonym zamiarem takiego,

Intent intent = new Intent(this,NewActivity.class); 
intent.putExtra(key,value); 
startActivity(intent); 

Teraz w NewActivity, można uzyskać tę wartość z zamiarem jak ta,

String value = getIntent().getExtras().getString(key); 
Powiązane problemy