Odpowiedzi:
Masz kilka możliwości:
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) Użyj skrótu metody putExtra () metody Intent
Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);
Następnie w uruchomionym działaniu można je przeczytać za pośrednictwem:
String value = getIntent().getExtras().getString(key)
UWAGA: Pakiety mają metody „get” i „put” dla wszystkich typów pierwotnych, Parcelables i Serializables. Właśnie użyłem Strings w celach demonstracyjnych.
Przekazywanie danych z jednego działania do działania w systemie Android
Zamiar zawiera czynność i opcjonalnie dodatkowe dane. Dane można przekazać do innego działania metodą intencyjną putExtra()
. Dane są przekazywane jako dodatki i są key/value pairs
. Klucz jest zawsze ciągiem. Jako wartość możesz użyć pierwotnych typów danych int, float, chars itp. Możemy również przekazywać Parceable and Serializable
obiekty z jednej aktywności do drugiej.
Intent intent = new Intent(context, YourActivity.class);
intent.putExtra(KEY, <your value here>);
startActivity(intent);
Pobieranie danych pakietu z aktywności Androida
Informacje można pobrać przy użyciu getData()
metod w obiekcie Intent. Obiekt Intent można pobrać za pomocą getIntent()
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);
}
Za pomocą pakietu można przekazywać wartości z jednego działania do innego działania. W ramach swojej bieżącej aktywności utwórz pakiet i ustaw pakiet dla określonej wartości i przekaż ten pakiet do celu.
Intent intent = new Intent(this,NewActivity.class);
Bundle bundle = new Bundle();
bundle.putString(key,value);
intent.putExtras(bundle);
startActivity(intent);
Teraz w swoim NewActivity możesz zdobyć ten pakiet i odzyskać swoją wartość.
Bundle bundle = getArguments();
String value = bundle.getString(key);
Możesz także przekazać dane przez intencję. W swojej obecnej działalności ustaw taki zamiar,
Intent intent = new Intent(this,NewActivity.class);
intent.putExtra(key,value);
startActivity(intent);
Teraz w swoim NewActivity możesz uzyskać tę wartość z takiego zamiaru,
String value = getIntent().getExtras().getString(key);
Napisz to jest aktywność, w której się znajdujesz:
Intent intent = new Intent(CurrentActivity.this,NextActivity.class);
intent.putExtras("string_name","string_to_pass");
startActivity(intent);
W 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"));
To działa dla mnie, możesz spróbować.
możesz użyć tego kodu w swojej pierwszej aktywności :
Intent i = new Intent(Context, your second activity.class);
i.putExtra("key_value", "your object");
startActivity(i);
i zdobądź obiekt w drugiej czynności :
Intent in = getIntent();
Bundle content = in.getExtras();
// check null
if (content != null) {
String content = content_search.getString("key_value");
}