Aaron B.
- Forum-Beiträge: 206
01.09.2013, 19:22:40 via App
01.09.2013 19:22:40 via App
Hallo @all!
Ich möchte ein xml-Attribut wie onClick machen: Wenn eine bestimmte Aktion passiert, wird mithilfe des Namens einer Methode der Parent-Activity ausgeführt.
Also z. B.:
Es funktioniert auch bis jetzt fast alles, aber beim Ausführen der Methode mit Method.invoke (Object receiver, Object [] parameter) benötige ich den "receiver" aus der Activity.
Mein Code: (In RPGView class):
In meiner Activity wird dann ein RPGView angezeigt. Die Methode zum ausführen (o.getOnFieldAccess()) soll auch in dieser Activity stehen.
Da dieses invoke() jedoch nicht in meiner Activity, sondern in meiner RPGView.class ausgeführt werden soll, kann ich für receiver nicht einfach "this" eintragen. Es wäre mir am liebsten, wenn man das object auch nicht über den Constructor von RPGView.class mitgeben müsste, im Notfall würde ich diese Option jedoch in Betracht ziehen.
Also nochmal ganz genau meine Frage:
Wie kommt man an den Parameter "receiver" von der Parent-Activity / Class?
Danke für Antworten im Voraus ;)
Ich möchte ein xml-Attribut wie onClick machen: Wenn eine bestimmte Aktion passiert, wird mithilfe des Namens einer Methode der Parent-Activity ausgeführt.
Also z. B.:
1in Xml:
2onClick="test"
3
4in der Activity, in der der Button / der View registriert ist:
5public void test (View v) {
6//stuff
7}
2onClick="test"
3
4in der Activity, in der der Button / der View registriert ist:
5public void test (View v) {
6//stuff
7}
Es funktioniert auch bis jetzt fast alles, aber beim Ausführen der Methode mit Method.invoke (Object receiver, Object [] parameter) benötige ich den "receiver" aus der Activity.
Mein Code: (In RPGView class):
1Method m = getContext().getClass().getMethod(o.getOnFieldAccess(), new Class[]
2 {
3 Integer.class,
4 Integer.class,
5 Integer.class
6 });
7 Button b;
8 m.invoke(HereShouldItBe , new Object[]
9 {
10 Integer.valueOf(getCurrentXPosition()),
11 Integer.valueOf(getCurrentYPosition()),
12 Integer.valueOf(getCurrentDirection())
13 });
2 {
3 Integer.class,
4 Integer.class,
5 Integer.class
6 });
7 Button b;
8 m.invoke(HereShouldItBe , new Object[]
9 {
10 Integer.valueOf(getCurrentXPosition()),
11 Integer.valueOf(getCurrentYPosition()),
12 Integer.valueOf(getCurrentDirection())
13 });
In meiner Activity wird dann ein RPGView angezeigt. Die Methode zum ausführen (o.getOnFieldAccess()) soll auch in dieser Activity stehen.
Da dieses invoke() jedoch nicht in meiner Activity, sondern in meiner RPGView.class ausgeführt werden soll, kann ich für receiver nicht einfach "this" eintragen. Es wäre mir am liebsten, wenn man das object auch nicht über den Constructor von RPGView.class mitgeben müsste, im Notfall würde ich diese Option jedoch in Betracht ziehen.
Also nochmal ganz genau meine Frage:
Wie kommt man an den Parameter "receiver" von der Parent-Activity / Class?
Danke für Antworten im Voraus ;)
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.