Ich habe MainActivity, eine Aktivität, und eine andere Klasse (eine einfache Java-Klasse), wir nennen sie "SimpleClass". Jetzt möchte ich von dieser Klasse aus den Befehl startActivityForResult ausführen.
Jetzt denke ich, dass ich diese Klasse (SimpleClass) übergeben könnte, nur der Kontext von MainActivity. Das Problem ist, dass Sie context.startActivityForResult (...) nicht ausführen können.
Die einzige Möglichkeit für SimpleClass, 'startActivityForResult' zu verwenden. ist, die Referenz von MainActivity als Aktivitätsvariable an die SimpleClass zu übergeben:
Innerhalb der MainActivity-Klasse erstelle ich die Instanz von SimpleClass folgendermaßen:
SimpleClass simpleClass=new SimpleClass(MainActivity.this);
So sieht SimpleClass nun aus:
public Class SimpleClass {
Activity myMainActivity;
public SimpleClass(Activity mainActivity) {
super();
this.myMainActivity=mainActivity;
}
....
public void someMethod(...) {
myMainActivity.startActivityForResult(...);
}
}
Jetzt funktioniert es, aber ist das nicht der richtige Weg, dies zu tun? Ich fürchte, ich könnte in Zukunft einige Speicherlecks haben.
Vielen Dank. Strahl.