Antworten:
Sie haben einige Möglichkeiten:
1) Verwenden Sie das Bundle aus der Absicht :
Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);
2) Erstellen Sie ein neues Bundle
Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);
3) Verwenden Sie die Verknüpfungsmethode putExtra () des Intent
Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);
In der gestarteten Aktivität lesen Sie sie dann über:
String value = getIntent().getExtras().getString(key)
HINWEIS: Bundles verfügen über die Methoden "get" und "put" für alle primitiven Typen, Parcelables und Serializables. Ich habe Strings nur zu Demonstrationszwecken verwendet.
Sie können das Bundle aus der Absicht verwenden:
Bundle extras = myIntent.getExtras();
extras.put*(info);
Oder ein ganzes Bündel:
myIntent.putExtras(myBundle);
Ist es das, wonach du suchst?
Übergeben von Daten von einer Aktivität an Aktivität in Android
Eine Absicht enthält die Aktion und optional zusätzliche Daten. Die Daten können mithilfe der Intent- putExtra()
Methode an andere Aktivitäten übergeben werden . Daten werden als Extras übergeben und sindkey/value pairs
. Der Schlüssel ist immer ein String. Als Wert können Sie die primitiven Datentypen int, float, chars usw. verwenden. Wir können auch Parceable and Serializable
Objekte von einer Aktivität an eine andere übergeben.
Intent intent = new Intent(context, YourActivity.class);
intent.putExtra(KEY, <your value here>);
startActivity(intent);
Abrufen von Bundle-Daten von Android-Aktivitäten
Sie können die Informationen mithilfe von getData()
Methoden für das Intent-Objekt abrufen . Das Intent- Objekt kann über die getIntent()
Methode abgerufen werden .
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);
}
Mit dem Bundle können Sie Werte von einer Aktivität an eine andere Aktivität übergeben. Erstellen Sie in Ihrer aktuellen Aktivität ein Bundle, legen Sie das Bundle für den jeweiligen Wert fest und übergeben Sie dieses Bundle an die Absicht.
Intent intent = new Intent(this,NewActivity.class);
Bundle bundle = new Bundle();
bundle.putString(key,value);
intent.putExtras(bundle);
startActivity(intent);
Jetzt in Ihrer NewActivity können Sie dieses Bundle erhalten und Ihren Wert abrufen.
Bundle bundle = getArguments();
String value = bundle.getString(key);
Sie können Daten auch durch die Absicht weitergeben. Legen Sie in Ihrer aktuellen Aktivität die Absicht wie folgt fest:
Intent intent = new Intent(this,NewActivity.class);
intent.putExtra(key,value);
startActivity(intent);
Jetzt in Ihrer NewActivity können Sie diesen Wert aus einer solchen Absicht erhalten:
String value = getIntent().getExtras().getString(key);
Schreiben Sie, dies ist die Aktivität, in der Sie sich befinden:
Intent intent = new Intent(CurrentActivity.this,NextActivity.class);
intent.putExtras("string_name","string_to_pass");
startActivity(intent);
In der 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"));
Das funktioniert bei mir, du kannst es versuchen.
Sie können diesen Code in Ihrer ersten Aktivität verwenden :
Intent i = new Intent(Context, your second activity.class);
i.putExtra("key_value", "your object");
startActivity(i);
und Objekt in der zweiten Aktivität erhalten :
Intent in = getIntent();
Bundle content = in.getExtras();
// check null
if (content != null) {
String content = content_search.getString("key_value");
}