So haben wir früher eine Activity gestartet
Intent it = new Intent(MainActivity.this,NormalActivity.class);
it.putExtra("key1","val1");
it.putExtra("key2","val2");
startActivity(it);Code-Sprache: JavaScript (javascript)
Hast du dir schon einmal überlegt, dass nicht jede Activity von dir entwickelt wurde?
Wenn du dann eine fremde Activity starten möchtest, musst du den zuständigen Entwickler fragen oder die Dokumentation lesen.
Ist das aber nicht ziemlich umständlich?
Gibt es eine bessere Lösung?
Können wir die Startlogik der Activity an einen anderen Entwickler übergeben?
Der Ersteller jeder Activity fügt also eine Methode in dieser Activity ein. Andere Entwickler rufen diese Methode auf, um die Activity zu öffnen.
Intent it = new Intent(MainActivity.this,NormalActivity.class);
it.putExtra("site","www.foxdevelop.com");//Eine andere Activity aus unserer eigenen Activity starten
//Wir müssen wissen, welche Daten die andere Activity braucht, daher Absprache mit deren Entwickler
startActivity(it);Code-Sprache: JavaScript (javascript)
Probieren wir das aus. Wir fügen eine statische Methode in die Ziel-Activity ein.
//Den Code zum Starten der Activity in deren Klasse ablegen
public static void actionStart(Context context, String site, int level)
{
Intent it = new Intent(context,NormalActivity.class);
it.putExtra("site",site);
it.putExtra("level",level);
context.startActivity(it);
}Code-Sprache: JavaScript (javascript)
NormalActivity.actionStart(MainActivity.this,"www.foxdevelop.com",12);Code-Sprache: CSS (css)
Eine bessere Methode zum Starten von Activities
Previous: Operationen mit Activities