| |||||||
Das Thema "Context?" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Fortgeschrittenes Mitglied Modell: Galaxy Nexus Registriert seit: 16.10.2010
Beiträge: 461
Abgegebene Danke: 25
Erhielt 110 Danke für 62 Beiträge
| ich habe das mit dem Context nicht wirklich verstanden! Wie kann ich z.B. einen Dialog, der in Activity B also Methode dargestellt wird, in Activity A anzeigen lassen?! MfG Ice
__________________ Galaxy Nexus: Android 4.0.4 (ICS) - Stock HP Touchpad: Android 4.0.4 (ICS) - CM9 Alpha 2.0 NIGHLTY (22.04.2012) |
| | |
| | #2 (permalink) | |
| Android-Hilfe.de Mitglied Modell: Acer Iconia A100 Registriert seit: 28.10.2011
Beiträge: 127
Abgegebene Danke: 15
Erhielt 13 Danke für 11 Beiträge
| Zitat:
Im übrigen: Activities erben von Context. Deswegen ist 'this' innerhalb einer Activity die Referenz auf den Context. Wieso schreibst Du Methoden, die von anderen Activities gebraucht werden, in eine Activity? Warum nicht in einer normalen, seperaten Klasse? | |
| | |
| | #3 (permalink) |
| Fortgeschrittenes Mitglied Modell: Galaxy Nexus Registriert seit: 16.10.2010
Beiträge: 461
Abgegebene Danke: 25
Erhielt 110 Danke für 62 Beiträge
|
Achso oO.. Achja, normale Klassen gibt es ja auch in Java :-P da kann ich also ganz normal einen Dialog schreiben und den dann in einer Activity anzeigen lassen? Gruß Gesendet mit der Android-Hilfe.de-App
__________________ Galaxy Nexus: Android 4.0.4 (ICS) - Stock HP Touchpad: Android 4.0.4 (ICS) - CM9 Alpha 2.0 NIGHLTY (22.04.2012) |
| | |
| | #4 (permalink) | |
| Android-Hilfe.de Mitglied Modell: Acer Iconia A100 Registriert seit: 28.10.2011
Beiträge: 127
Abgegebene Danke: 15
Erhielt 13 Danke für 11 Beiträge
| Zitat:
Guck Dir mal android.widget.PopupMenu an. Geändert von mradlmaier (13.11.2011 um 15:31 Uhr) | |
| | |
| | #5 (permalink) |
| Android Experte Modell: Samsung Galaxy S2 mit CM9 | Asus Transformer Prime Registriert seit: 27.08.2010
Beiträge: 782
Abgegebene Danke: 124
Erhielt 162 Danke für 128 Beiträge
|
Du kannst den Dialog darstellen lassen, wenn die Methode static ist. Allerdings braucht jeder Dialog einen Context, den du der statischen Methoden übergeben müsstest. Dann würde in Activity B auch nicht mehr der this Operator in der statischen Methode funktionieren (was ja logisch ist). Ich erstelle mir in meinen Apps in der Regel eine DialogFactory Klasse. Die beinhaltet nur statische Methoden und ich übergebe halt den Context. Dann kann man aus jeder Activity die Dialoge erzeugen.
__________________ Auch ich freue mich, wenn man bei mir den DANKE Button drückt ![]() PowerPoint OpenOffice Remote - Kostenlose App um PowerPoint, OpenOffice und LibreOffice fernzusteuern. Shutdown Remote - Kostenlose App um seinen PC aus der Ferne herunterzufahren. |
| | |
| Folgender Benutzer bedankt sich bei v Ralle v für diesen Beitrag: | IceClaw (14.11.2011) |
| | #6 (permalink) | |
| Android-Hilfe.de Mitglied Modell: Acer Iconia A100 Registriert seit: 28.10.2011
Beiträge: 127
Abgegebene Danke: 15
Erhielt 13 Danke für 11 Beiträge
| Zitat:
| |
| | |
| | #7 (permalink) |
| Android Experte Modell: Samsung Galaxy S2 mit CM9 | Asus Transformer Prime Registriert seit: 27.08.2010
Beiträge: 782
Abgegebene Danke: 124
Erhielt 162 Danke für 128 Beiträge
|
Ich habe nie von dem Pattern gesprochen. Nur weil meine Klasse "Factory" enthält ^^ Habe mal ein Beispiel erstellt, es handelt sich aber NICHT um das Factory Pattern! Ich packe in diese Klasse alle Dialoge um die Übersicht zu behalten und die Anzahl der Klassen klein zu halten. Code: public class SimpleDialogFactory {
public static Dialog createSimpleExampleDialog(Context context) {
return new AlertDialog.Builder(context).setTitle("Title").show();
}
public static void createExtendedExampleDialog(Context context) {
new ExtendedDialog(context);
}
private static class ExtendedDialog extends AlertDialog.Builder {
public ExtendedDialog(Context context) {
super(context);
setTitle("Title");
setMessage("message");
//more
show();
}
}
} Ich hoffe ich konnte helfen =)
__________________ Auch ich freue mich, wenn man bei mir den DANKE Button drückt ![]() PowerPoint OpenOffice Remote - Kostenlose App um PowerPoint, OpenOffice und LibreOffice fernzusteuern. Shutdown Remote - Kostenlose App um seinen PC aus der Ferne herunterzufahren. |
| | |
| | #8 (permalink) |
| Fortgeschrittenes Mitglied Modell: Galaxy Nexus Registriert seit: 16.10.2010
Beiträge: 461
Abgegebene Danke: 25
Erhielt 110 Danke für 62 Beiträge
|
Haha ![]() danke Ralle, deine erste Erklärung hat gereicht um es zu realisieren ![]() MfG ice
__________________ Galaxy Nexus: Android 4.0.4 (ICS) - Stock HP Touchpad: Android 4.0.4 (ICS) - CM9 Alpha 2.0 NIGHLTY (22.04.2012) |
| | |
| | #9 (permalink) | |
| Android-Hilfe.de Mitglied Modell: Acer Iconia A100 Registriert seit: 28.10.2011
Beiträge: 127
Abgegebene Danke: 15
Erhielt 13 Danke für 11 Beiträge
| Zitat:
Ich hab da mal eine blöde Frage: Welchen Vorteil hat es, das die Dialoge statisch sind? Wenn ich static richtig verstehe ist das für Klassenvariablen im Gegensatz zu Instanzvariablen? Was ist verkehrt daran innerhalb einer Activity, wenn diese einen Dialog aufbaut, dem Benutzer anzeigt und danach der Dialog zerstört wird? Nur wegen der Übersicht und Anzahl der Klassen? Geändert von mradlmaier (14.11.2011 um 19:15 Uhr) | |
| | |
| | #10 (permalink) |
| Android Experte Modell: Samsung Galaxy S2 mit CM9 | Asus Transformer Prime Registriert seit: 27.08.2010
Beiträge: 782
Abgegebene Danke: 124
Erhielt 162 Danke für 128 Beiträge
|
Du beschwerst dich, welche Wendung dieser Thread nimmt und fragst dann nach static Aus Sicht der Objektorientierung ist static böse. Aber manchmal kommt man nicht drum herum oder es vereinfacht die Dinge. Wie in diesem Fall. Ich habe nur eine Klasse meines Styles gezeigt. Es brauch sich keiner angegriffen fühlen. Es führen viele Wege zum Ziel. Der Vorteil hier ist, dass diese Dialoge aus jeder Klasse ausgerufen werden können, ohne eine Instanz von DialogFactory erzeugen zu müssen. Mir hilft es - wie gesagt - besonders bei der Übersicht. Natürlich kannst du auch in einer Activity eine Member Methode anlegen. Aber dann kannst du die Methode auch nur in der Activity aufrufen (oder du übergibst eine Instanz der Activity). Das sind alles Design Aspekte und jeder hat einen verschiedenen Geschmack. Dies ist nur eine Variante. Um nochmal auf die Ausgangsfrage zurück zu kommen: IceClaw wollte wissen, wie aus 2 Activity's den selben Dialog aufrufen kann, ohne den Code zu kopieren. Das habe ich gezeigt. Und wie gesagt, er könnte der zweiten Activity auch eine Instanz der ersten übergeben (sofern die erste die Methode für den Dialog beinhaltet), muss dann aber dem Dialog den Context der zweiten Activity übergeben, damit es sauber bleibt.
__________________ Auch ich freue mich, wenn man bei mir den DANKE Button drückt ![]() PowerPoint OpenOffice Remote - Kostenlose App um PowerPoint, OpenOffice und LibreOffice fernzusteuern. Shutdown Remote - Kostenlose App um seinen PC aus der Ferne herunterzufahren. |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Context-Menü on TableRow | witschi87 | Android App Entwicklung | 13 | 19.10.2011 19:35 |
| SQlite welchen Context mitgeben? | Konga | Android App Entwicklung | 5 | 21.12.2010 16:38 |
| Usability beim Context menü | Raidri | Android App Entwicklung | 6 | 11.06.2010 11:28 |
| SQLite Zugriff ohne Context | mrdanger | Android App Entwicklung | 8 | 06.03.2010 16:38 |
| options und context menu | swordi | Android App Entwicklung | 2 | 03.07.2009 11:12 |