Was ist der richtige Weg, um ein Bündel an die Aktivität zu übergeben, die von der aktuellen gestartet wird? Gemeinsame Eigenschaften?
Sie haben einige Möglichkeiten:
1) Verwenden Sie das Bundle aus dem Intent :
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 Shortcut-Methode putExtra () des Intent
Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);
Dann würden Sie sie in der gestarteten Aktivität lesen über:
String value = getIntent().getExtras().getString(key)
HINWEIS: Bundles haben "get" - und "put" -Methoden für Alle primitiven Typen, Parcelables und Serializables. Ich habe Strings nur zu Demonstrationszwecken verwendet.
Sie können das Bundle aus dem Intent verwenden:
Bundle extras = myIntent.getExtras();
extras.put*(info);
Oder ein ganzes Bundle:
myIntent.putExtras(myBundle);
Ist es das, wonach du suchst?
Übertragen von Daten von einer Aktivität an eine Aktivität in Android
Eine Absicht enthält die Aktion und optional zusätzliche Daten. Die Daten können mit der Intention putExtra()
-Methode an andere Aktivitäten übergeben werden. Daten werden als Extras übergeben und sind key/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 auchParceable 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);
Bündeldaten von Android-Aktivitäten abrufen
Sie können die Informationen mit den MethodengetData()
des Intent-Objekts abrufen. Das Objekt Intent kann über die MethodegetIntent()
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 Bündel, legen Sie das Bündel für den jeweiligen Wert fest und übergeben Sie dieses Bündel an die Absicht.
Intent intent = new Intent(this,NewActivity.class);
Bundle bundle = new Bundle();
bundle.putString(key,value);
intent.putExtras(bundle);
startActivity(intent);
Jetzt können Sie in Ihrer NewActivity dieses Bundle erhalten und Ihren Wert abrufen.
Bundle bundle = getArguments();
String value = bundle.getString(key);
Sie können auch Daten durch die Absicht weiterleiten. Legen Sie in Ihrer aktuellen Aktivität die Absicht so fest,
Intent intent = new Intent(this,NewActivity.class);
intent.putExtra(key,value);
startActivity(intent);
Jetzt können Sie in Ihrer NewActivity diesen Wert aus folgenden Intentionen abrufen:
String value = getIntent().getExtras().getString(key);
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 erhalte Objekt in zweiter Aktivität :
Intent in = getIntent();
Bundle content = in.getExtras();
// check null
if (content != null) {
String content = content_search.getString("key_value");
}
Schreibe das ist die Aktivität, in der du bist:
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 für mich, du kannst es versuchen.