Die vorhandenen Antworten (übergeben Sie die Daten in Intent
übergeben an startActivity()
) zeigen den normalen Weg, um dieses Problem zu lösen. Es gibt eine andere Lösung, die in dem seltenen Fall verwendet werden kann, in dem Sie eine Aktivität erstellen, die von einer anderen App gestartet wird (z. B. eine der Bearbeitungsaktivitäten in einem Tasker-Plugin) und daher nicht die Intent
steuert Activity
.
Sie können eine Basis-Klasse Activity
erstellen, die einen Konstruktor mit einem Parameter hat, dann eine abgeleitete Klasse, die einen Standardkonstruktor hat, die den Basisklassenkonstruktor mit einem Wert nennt, wie so:
class BaseActivity extends Activity
{
public BaseActivity(String param)
{
// Do something with param
}
}
class DerivedActivity extends BaseActivity
{
public DerivedActivity()
{
super("parameter");
}
}
Wenn Sie den Parameter generieren müssen, der an den Basisklassenkonstruktor übergeben werden soll, ersetzen Sie einfach den hartcodierten Wert durch einen Funktionsaufruf, der den richtigen Wert zurückgibt, der übergeben werden soll.
Sie mögen Stellen Sie sicher, b! = null, bevor Sie beginnen, davon zu greifen – Andrew
Wie kann "b" Null in der zweiten Aktivität in diesem Code sein? Ich bekomme b ist Null auf create Methode der zweiten Aktivität. –
B kann null sein, sagen wir, Sie möchten diese Aktivität von einem anderen Ort aus starten und Sie tun dies auf die übliche Weise, ohne Parameter. Es wird eine NPE werfen.Sie sollten diese Parameter immer als optional betrachten. –