Hm der offiziell richtige Weg ist wohl eher: pro Seite eine Activity. Frage mich allerdings, ob das nicht, wenn man wirklich viele Seiten hat, die man nur temporär benötigt, unnötig Speicherplatz verbraucht?
Beiträge von JanHH
-
-
Hallo,
meine geplante Android-Anwendung besteht aus einer ganzen Menge "Seiten", "Fenstern", "Menüs" oder wie auch immer, durch die man sich nacheinander klicken muss. Frage mich nun, wie man sowas mit dem Android-java realisiert. Es gibt die Anwendung schon als normale java-Swing-Anwendung, da besteht sie einfach aus diversen JFrames, die nacheinander angezeigt werden. Wie realisiert man das am besten auf dem Android?
Spontan tendiere ich dazu, einfach den Inhalt der Activity mittels this.setContentView(...) jeweils dynamisch auszutauschen. Bei meinen ersten Versuchen hat das zumindest funktioniert. Kann man das so machen oder ist das irgendwie haarsträuben? Eine Reihe von modalen Dialoge, die nacheinander angezeigt werden, kommt mir suboptimal vor, weil ich schon gerne das ganze Activity-Hauptfenster zur Verfügung hätte (vom Platz her).
Was ist da der richtige Weg?
Die GUI-Api vom Android-java-Dialekt kommt mir ansonsten SEHR einfach und straightforward vor, sehr viel mehr als Swing und co.
Gruß+Danke
Jan -
Heisst das Verzeichnis der sdcard eigentlich IMMER, d.h. bei allen Geräten, "/sdcard/data"? Wenn ja, könnte ich das ja fest verdrahtet in meinen Code schreiben. Oder gibts da Unterschiede?
-
Ja das ist da auch so. Aber das macht ja nix.
-
Also ich hab jetzt ja das HTC Wildfire und bin an sich sehr zufrieden.
-
Na prima, habs hinbekommen.. vom Gerät aus betrachtet gibt es im "/"-Ordner ein Verzeichnis "sdcard". Der Inhalt dieses Verzeichnisses ist (was auch nicht ganz unlogisch ist) das, was man sieht, wenn man das Gerät als USB-Massenspeicher im Windows Explorer sieht. Also dort "data\testverzeichnis\abc.txt" ist innerhalb der App "sdcard/data/testverzeichnis/abc.txt". Klappt sowohl mit Lesen als auch mit Schreiben. Na prima..
-
Danke. Der Link zu dem Buch-pdf ist sehr schön, prima!
Hab nun das File Explorer-Plugin bei eclipse gefunde, immerhin. Allerdings, überall steht: Nur die Anwendung selber darf Dateien in ihr Verzeichnis lesen und schreiben. Für meine Anwendung wärs nun nach wie vor praktisch, Dateien in dieses Verzeichnis zu kopieren (quasi mit dem Windows Explorer oder ähnlichen Programmen), die Anwendung liest diese Dateien dann, führt bestimmte Aktionen aus und schreibt das Ergebnis dieser in wiederum andere Dateien zurück (auf die man dann auch wieder irgendwie "von aussen" zugreifen muss).
Nun gibt es jedoch auch die SD-card und wohl offenbar einen "öffentlichen" Bereich für Dateien. Ich blick da wirklich gerade nicht durch. Optimalerweise bräuchte ich irgendeinen Ordner, von dem aus ich sowohl per USB-Kabel vom PC aus zugreifen kann, als auch auf dem Android selber innerhalb der Applikation.
Mit dem Code
File f=new File("/");
String[] s=f.list();bekomme ich schön den Inhalt des Stammverzeichnisses (nehme ich an), dort gibts z.B. config, sdcard, etc, cache, data, sys, sbin, proc, und so weiter und so fort. Wenn ich das Gerät (hab ja mittlerweile eins, HTC wildfire) im Modus "Festplatte" (also als USB-Speichermedium) mit dem PC verbinde, finde ich dort jedoch ganz andere Ordner vor. Einzig der Name "data" taucht bei beiden auf. Kann mir das nicht jemand erklären? Welches Verzeichnis bietet sich an für das, was ich vorhabe!? Finde das grad ziemlich konfus.
-
Ja danke für die Antworten. Mit den programmatischen Widgets bin ich schon selber weiter gekommen, ist ja wirklich alles andere als schwierig (finds noch deutlich einfacher als java-Swing).
Auf dem Android soll die Applikation natürlich auf Dateien, die auf dem Android sind, zugreifen, aber zum Entwickeln selbiger wärs ganz gut, die Dateien per Hand in das Verzeichnis vom Android zu kopieren (in der realen Anwendung werden die per Socket übertragen und dann gespeichert, aber der Programmteil fehlt noch. Ggf. muss ich den halt als erstes bauen). Aber soweit ich das bisher ergooglet hab ist das Android-Dateisystem in irgendeinem image-File und so direkt per windows-Explorer (beim Emulator) nicht zugänglich. Ich hab auch bisher kein Gerät, ich MUSS das mit dem Emulator entwickeln/testen. Wobei ich gerade bei ebay ein HTC Wildfire ersteigert hab ;-).
Sind die Android-Versionen eigentlich aufwärtskompatibel? Also wenn ich bspws. für Version 1.6 entwickel, läuft die dann auf 1.6 und allen höheren? Vermute ja?
Danke
Jan -
schweigt
-
Irgendwie kommt mir das jetzt albern vor.
-
Ich find die Fragen dafür eigentlch zu banal.. aber wenns sein muss kann ich das demnächst machen.
-
Und noch eine Frage die ich vergessen hatte: Wie kommt die Applikation aufs Gerät? Geht das nur über irgendein web-publishen über irgendeinen Market, oder kann man die auch per USB-Kabel direkt und ganz altmodisch aufs Gerät kopieren und dort installieren? Für meine Anwendung wäre eher letzteres praktikabel.
-
Eine Frage noch, hatte die eben vergessen: Laufen im Emulator eigentlich auch tatsächlich nur die java-Klassen und -packages, die auch auf dem realen Android-Gerät laufen? Also wenn mein Projekt irgendwas enthält, was vom Android-java-Dialekt nicht unterstützt wird, merk ich das schon im Emulator, oder erst die böse Überraschung beim Versuch, die Anwendung auf dem realen Gerät laufen zu lassen?
-
Hallo,
fange gerade an, mich mit Android-Programmierung zu beschäftigen. Konkret gehts darum, eine bereits bestehende "normale" java-Swing-Applikation nach Android zu portieren. Dazu hab ich ein paar Fragen. Man findet zwar auch alles irgendwie online dokumentiert, aber bevor ich mich da durchwühle, wärs ganz gut, ein paar Dinge direkt in Erfahrung zu bringen.
Ich hab das SDK und das Eclipse-Plugin installiert, läuft auch soweit alles.
- die Applikation arbeitet mit Dateien (lesen und schreiben). Man kann mit "String s=getFilesDir().getAbsolutePath();" zwar den Pfad, an dem die Anwendung ihre Daten ablegt, erfragen, aber finde ich den auch tatsächlich irgendwo auf der Festplatte vor (wenn ich mit dem Emulator arbeite), oder existiert der nur temporär im Speicher des Emulators, während dieser läuft? Wäre praktisch für mich, wenn ich Dateien zum Testen irgendwo hin kopieren könnte, und dann innerhalb der Anwendung (die im Emulator läuft) darauf zugreifen kann. Hab mal testeweise eine kleine Datei angelegt, aber die mit dem Windows-Explorer nirgends wiedergefunden.
- Zu GUI-Elementen (vor allem Menus, Radiobuttons, Checkboxes) wird überwiegend gesagt, man solle diese nicht programmatisch anlegen, sondern mit diesen XML-Layout-Dateien. Meine Anwendung muss jedoch jede Menge dieser Elemente dynamisch erzeugen, ohne vorher den genauen Inhalt zu kennen, also zwangsläufig "programmatisch". Hat irgendjemand ein Beispiel oder ein Tutorial, wie man beispielsweise eine RadioButton-Group oder ein paar Checkboxes komplett innerhalb des java-Codes anlegt, ohne XML-Dateien?
Bin für Hilfe dankbar..
Gruß
Jan -
Prima, danke!
-
Stimmt, danke. Aber so lange warten? Waren ca. 1,5 minuten..
Wo ich grad dabei bin, noch ein paar grundsätzliche Fragen: Es geht generell darum, eine bereits bestehende Java-Software für "ein Smartphone" zu portieren. Da schien mir die Android-Plattform die naheliegendste Lösung. Ich weiss natürlich nicht, ob das wirklich geht. Meine Anwendung braucht:
- die Möglichkeit, Fenster aufpoppen zu lassen und wieder zu schliessen (kann/sollte) auch gerne Vollbild sein)
- Buttons in selbigen (Radiobuttons, Checkboxes, normale Buttons..)
- Texteingabefelder, wo man was eingeben kann
- Zugriff (lesend und schreibend) auf ein Dateisystem
- optimalerweise Netzwerkfunktionen (per Socket oder auch HTTP-Get)Geht das alles?
-
Hallo,
die Frage mag etwas blöd sein, ich stell sie aber trotzdem weil ich einfach nicht weiss wie ich da sonst weiterkommen soll..;). Habe alles gemacht wie beschrieben, das Android SDK runtergeladen, die Ecplipse-Plugins instsalliert (Ganymede), mit dem Sdk manager all die verfügbaren Profile/Apis runtergeladen, ein AVD erstellt, das Eclipse-HelloWorld-TutorialProjekt angelegt, klappt auch soweit alles, lässt sich auch starten, dann startet auch so ein Android-Simulator, nur.. das eigentliche HelloWorld-Programm wird nicht ausgeführt. Alles man man sieht ist der Schriftzug "A N D R O I D" mit blinkendem Cursor dahinter auf dem Display. Was kann da falsch laufen?
Gruß+Danke
Jan