- Forum-Beiträge: 282
22.08.2014, 15:27:16 via Website
22.08.2014 15:27:16 via Website
Hallo Leute
Ich will aus einem String (dieser den Klassennamen enthält) ein Intent-Objekt erzeugen.
Wie ist das möglich?
LG Jakob
22.08.2014, 15:27:16 via Website
22.08.2014 15:27:16 via Website
Hallo Leute
Ich will aus einem String (dieser den Klassennamen enthält) ein Intent-Objekt erzeugen.
Wie ist das möglich?
LG Jakob
22.08.2014, 16:58:35 via App
22.08.2014 16:58:35 via App
Ja das geht. Schau dir mal Class.getByName oder so ähnkich an.
Wenns falsch war poste ich dir heute abend den entsprechenden Code.
LG Pascal //It's not a bug, it's a feature.
22.08.2014, 17:01:09 via Website
22.08.2014 17:01:09 via Website
Das wüsste ich auch gerne...ich bin noch nicht dahinter gekommen
22.08.2014, 17:03:00 via Website
22.08.2014 17:03:00 via Website
Ich denk du meinst die Methode Class.forName (funktioniert auch )
Danke!
LG Jakob
22.08.2014, 17:04:15 via App
22.08.2014 17:04:15 via App
Gut hatte gerade nicht den richtigen Namen im Kopf.
Vlt muss in den String noch das Package rein.
LG Pascal //It's not a bug, it's a feature.
22.08.2014, 17:05:09 via Website
22.08.2014 17:05:09 via Website
Jap Package muss rein!
LG Jakob
22.08.2014, 17:05:30 via Website
22.08.2014 17:05:30 via Website
Jakob N.
Ich denk du meinst die Methode Class.forName (funktioniert auch )
Danke!
Hmmm...könntest du mal ein Beispiel posten? Soweit ich mich erinnern kann hat das nicht funktioniert...
22.08.2014, 17:08:14 via Website
22.08.2014 17:08:14 via Website
try {
Class<?> c = Class.forName("dein.package.com.ActivityName");
Intent intent = new Intent(this, c);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
— geändert am 22.08.2014, 17:08:43
LG Jakob
22.08.2014, 17:09:53 via Website
22.08.2014 17:09:53 via Website
Dnake! Ich werde es dann mal versuchen
22.08.2014, 18:15:05 via App
22.08.2014 18:15:05 via App
Vlt solltest du noch wigendwie Lrüfen ob die aufgerufene Klasse eine Activity ist.
Wenn nicht gibts nen Problem.
LG Pascal //It's not a bug, it's a feature.
22.08.2014, 18:15:41 via Website
22.08.2014 18:15:41 via Website
Gibts dafür eine Methode?
LG Jakob
22.08.2014, 18:26:01 via App
22.08.2014 18:26:01 via App
Weiss ich ncht aber wass passiert denn wenn der Angegebene String nur ne normale Klasse und keine Activity ist?
Das würde mich mal Interessieren.
Vlt musst du nur ne weitere exception behandeln.
— geändert am 22.08.2014, 18:26:22
LG Pascal //It's not a bug, it's a feature.
22.08.2014, 18:36:53 via Website
22.08.2014 18:36:53 via Website
Das weiß ich jetzt auch nicht, muss man probieren.
Ich starte ja die Activity nicht explizit. Sondern übergeben den Intent im try noch einen PendingIntent (falls dieser PendingIntent null ist füge ich ihn nicht der Notifiaction zu, sonst schon). Dieser ist vor dem try mit null initalisiert. Und wenn ich jetzt etwas mitgeben das keine Activity ist oder generell keine vorhandene Klasse, wird beim Klick auf die Notifiaction einfach nichts geöffnet.
LG Jakob
22.08.2014, 18:39:44 via App
22.08.2014 18:39:44 via App
Ich mache das auch über einen Intent +PendingIntent für Notifications.
Ich nutze das für GCM da kann man dann online im web ne Nachricht schreiben die an alle gesendet werden soll und die bei click aufzurufende Activity kann ich da ebenfalls festlegen
LG Pascal //It's not a bug, it's a feature.
22.08.2014, 19:42:21 via App
22.08.2014 19:42:21 via App
Genau dass habe ich programmiert, weil du damals gesagt hast dass du das gemacht hast
LG Jakob
22.08.2014, 19:57:24 via App
22.08.2014 19:57:24 via App
Ist eine gute Idee, das so zu machen.
So muss man keine Umständlichen If abfragen oder so machen sondern kann einfach die Activity angegeben.
Ich habe das jetzt schon einige Zeit im Einsatz.
Bis auf 2 Fehler habe isch bisher keine Probleme Feststellen können.
Vlt wäre es von Vorteil ein 2. Intent auf deine MainActivity zu machen und dieses zu startenfalls der string mit der Activity falsch ist oder keiner Angegeben ist.
LG Pascal //It's not a bug, it's a feature.
22.08.2014, 20:19:42 via App
22.08.2014 20:19:42 via App
Welche Fehler sind aufgetreten?
Will manchmal keinen PedingIntent hinzufügen, sondern dem User nur eine Information anzeigen
Geht das eigentlich bzw. was haktest du davon wenn man über GCM einen Text verschickt der dann ausgeführt wird? Kann soetwas überhaupt reintheoretisch funktionieren? (zB um in den sharedpreferences etwas zu ändern oder ein Item bei einer Liste hinzuzufügen)
— geändert am 22.08.2014, 20:19:51
LG Jakob
22.08.2014, 20:35:06 via App
22.08.2014 20:35:06 via App
Ne das geht nur wenn du ifs erstellst.
Aber ich habe z.b eine Gcm Message die jeder User Aufs Handy bekommt wenn sich eine Website ändert, also wenn neue News etc. hinzugefügt werden.
So kann ich in meinem Gcm Message Formalt das Intent Angeben welche Activity geöffnet werden soll.
So kann ich auch andere Activities öffnen lassen oder messages senden die andere Activiies aufrufen ohne den Code zu ändern oder ein Update herauszubringen.
— geändert am 22.08.2014, 20:36:04
LG Pascal //It's not a bug, it's a feature.
22.08.2014, 23:45:59 via App
22.08.2014 23:45:59 via App
Klingt super
LG Jakob